1dp是ppi为160的显示器的一个像素。为什么将其更改为较小的数字(0.3)不会改变可见性?我原以为将1dp改为0.3 dp会使小部件(只是一条线)不可见。
答案 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.5dp
或0.1dp
执行相同操作更具可读性。
有关详细信息,请阅读documentation