我正在阅读这篇文章:http://developer.android.com/guide/practices/screens_support.html
它表示 Android 用于将 dp 单位转换为 px 单位的公式如下:
px = dp * (dpi / 160)
文章还给出了 dpi 为 240 时的示例,得到 px = 1.5(我计算的是单个 dp 像素)
但是,这里的 1.5 到底是什么意思?一旦 px 单位实际上是物理设备像素,Android 会绘制 1 个或 2 个像素吗?
最佳答案
这取决于上下文。
如果 dp 值用于暗示大小的上下文中,例如 android:layout_width
属性,为 Resources.getDimensionPixelSize() 描述的逻辑将会被使用。也就是说,px 值将四舍五入为最接近的整数值,特殊情况是如果 px> 0,则实际值至少为 1。
如果 dp 值用于暗示偏移的上下文中,例如 android:insetLeft
Inset Drawable 的属性,为 Resources.getDimensionPixelOffset() 描述的逻辑将会被使用。也就是说,px 值将被简单地截断为整数值。
有时会使用未修改的浮点值,例如 android:dashWidth
<stroke/>
的属性Shape Drawable 中的标记,但这种情况很少见。通常使用大小或偏移逻辑,即使可以使用浮点值也是如此。
关于安卓: 'dp' 到 'px' 转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7402749/