根据android doc说“将dp单位转换为屏幕像素很简单:px = dp * (dpi / 160)
。例如,在240 dpi屏幕上,1 dp等于1.5个物理像素。”
我对这个例子感到有点困惑。根据公式,px=(240/160)dp => px = 1.5dp
怎么会变成“在240 dpi的屏幕上,1 dp等于1.5个物理像素。”?应该说1 px等于1.5 dp。请说清楚。
答案 0 :(得分:2)
密度越高,物理像素越小。因此,为了保持dp中度量的大小保持不变,1dp需要更高密度的物理像素,因为它们更小。
dp的官方标准化是1dp = 1px,密度为160dpi;因此,在240dpi的密度 - 大50% - 你需要多50%的物理像素,以保持dp表示的度量的相同长度。
答案 1 :(得分:1)
Android定义了具有不同屏幕密度的设备的密度比。对于mdpi设备,此比率设置为1.因此,如果指定宽度为1dp,则android通过将dp值乘以密度比来计算像素值,即对于mdpi设备,px = 1(dp)* 1(比率)= 1px
但是在像xhdpi设备这样的高密度设备上,比率为2,而android会通过将dp值乘以密度比将dp转换为像素。 px = 1(dp)* 2(比率)= 2px。 因此,你的元素在xhpi设备上将是2px。
可以在此处找到更多信息:http://www.jtechniques.com/android/android-basics/understanding-dp-in-android-ui-px-vs-dp