package org.droiddraw.util;
import org.droiddraw.property.StringProperty;
public class DisplayMetrics {
public static float density=1.0f;
public static float scaledDensity=1.0f;
public static float xdpi=160;
public static float ydpi=160;
public static final float MM_TO_IN = 0.0393700787f;
public static final float PT_TO_IN = 1/72.0f;
public static int readSize(StringProperty prop)
{
return readSize(prop.getStringValue());
}
public static int readSize(String sz)
{
if (sz == null)
return -1;
try {
float size;
if (sz.endsWith("dip"))
size = Float.parseFloat(sz.substring(0, sz.length()-3));
else
size = Float.parseFloat(sz.substring(0, sz.length()-2));
if (sz.endsWith("px")) {
return (int)size;
}
else if (sz.endsWith("in")) {
return (int)(size*xdpi);
}
else if (sz.endsWith("mm")) {
return (int)(size*MM_TO_IN*xdpi);
}
else if (sz.endsWith("pt")) {
return (int)(size*PT_TO_IN*xdpi);
}
else if (sz.endsWith("dp") || sz.endsWith("dip")) {
return (int)(size*density);
}
else if (sz.endsWith("sp")) {
return (int)(size*scaledDensity);
}
else {
return Integer.parseInt(sz);
}
} catch (NumberFormatException ex) {
return -1;
}
}
}