public static void getdpfrompx(){
float density = 326/160;//326为iphone6的ppi
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n");
for (int px =0; px <= 100; px +=2) {
//像素值除以density
String dp = px * 1.0f / density + "";
//拼接成资源文件的内容,方便引用
if (dp.indexOf(".") + 4 < dp.length()) {//保留3位小数
dp = dp.substring(0, dp.indexOf(".") + 4);
}
stringBuilder.append("<dimen name=\"px").append(px + "").append("dp\">").append(dp).append("dp</dimen>\n");
}
stringBuilder.append("</resources>");
System.out.println(stringBuilder.toString());
}
名词解释:分辨率:物理像素总数。
尺寸:手机设备实际尺寸,分为小、正常、大、超大
密度:每英寸点数。
分为ldpi(0~120),mdpi(120~160),hdpi(160~240),xhdpi(240~320),xxhpi(320~480),xxxhpi(480~640).
密度无关像素:等于 160 dpi 屏幕上的一个物理像素,这是 系统为“中”密度屏幕假设的基线密度。dp 单位转换为屏幕像素很简单: px = dp * (dpi / 160)。
参考文章:http://blog.youkuaiyun.com/zengd0/article/details/52464627