每英寸点数单位如何在android中运行?

时间:2017-09-12 14:09:23

标签: android

1dp是ppi为160的显示器的一个像素。为什么将其更改为较小的数字(0.3)不会改变可见性?我原以为将1dp改为0.3 dp会使小部件(只是一条线)不可见。

1 个答案:

答案 0 :(得分:0)

在android中有一个公式:

  

px = (int)(scale * dp + 0.5)

(即器件密度标度四舍五入到最接近的整个像素值)

比例值将基于设备的屏幕密度:

因此,0.5dp会导致上述密度为{1px, 1px, 1px, 2px},而1dp则为{1px, 2px, 2px, 3px}。像0.1dp这样的微小值将解析为{1px, 1px, 1px, 1px},因为上述公式中任何小于1的值都会解析为单个像素,除非该值明确0dp(它不可能绘制比单个像素宽度更薄的东西。)

如果您想确保使用尽可能宽的宽度,最好使用px显式定义宽度,而不是dp.等缩放单位。设置1px的值将会绘制在所有设备上使用单个像素,并且比希望0.5dp0.1dp执行相同操作更具可读性。

有关详细信息,请阅读documentation

相关问题