1.单位介绍
ppi:Pixels Per Inch,也叫像素密度,表示每英寸有多少像素。
dpi:Dots Per Inch,表示每英寸有多少个墨点。
dp、dip:device independent pixels,设备独立像素,不同设备有不同的显示效果。
sp:scaled pixels,缩放像素, 主要用于字体显示。
px:Pixel,像素。
2.Android目录下的文件夹
3.总结
a.一般移动设备ppi与dpi相等的。(个人理解:ppi用于屏幕,dpi用于打印机)
计算:比如小米手机,分辨1080*1920,5.0寸(即手机屏幕的对角线长度):
设对角线的像素为x,根据三角形的勾股定理:
1080^2+1920^2=x^2;
x=2202.907170082;
每英寸的像素ppi=对象线像素/对角线长度=2202.907170082/5=440.5814340;
b.dp、sp与px转换公式: px=dp*ppi/160,px=sp*ppi/160 。
c.由于ppi/160可能为1.5,所以建议dp,sp最好为偶数
d.官方推荐android开发sp最好为12,14,18,22
e.转换代码
public static float dpToPx(float dp) {
// 方式一
float px = TypedValue
.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp,
BaseApplication.getContext().getResources()
.getDisplayMetrics());
// 方式二
// float px = dp * DeviceInfo.SCREEN_DENSITY;
return px;
}