安卓: 'dp' 到 'px' 转换?

标签 android user-interface

我正在阅读这篇文章: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/

相关文章:

android - 通知未被取消 (Android)

android - TextView 左侧的相对布局和按钮 - 挤压问题

java - ActionListener(actionPerformed) 返回一些东西?

java图形用户界面和逻辑

java - takePicture 因堆相关错误而失败

android - 如何使用 Android Gradle 插件在编译前运行多个任务

android - 如何让安卓进入休眠模式

ios - IOS 的表单容器组件

java - 如何使用按钮控制循环?

android - CheckedTextView 比 TextView 占用更多空间