gpt4 book ai didi

android - 为什么不应该使用 dpToPixel 来设置布局尺寸?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:47:09 26 4
gpt4 key购买 nike

为什么在 dpToPixel(声明为 here)的 javadocs 中声明它不应该用于设置布局尺寸?

最佳答案

我们不使用像素来定义布局尺寸。使用与密度无关的像素 可确保在各种设备上实现适当的布局尺寸。这意味着所述布局在 4 英寸手机和 7 英寸平板电脑上的视觉尺寸大致相同。 (这与手头的问题完全无关:))

话虽如此,实际的布局尺寸(例如 LayoutParams 类)实际上是使用整个 像素来定义结果尺寸。这样使用dpToPixels方法是可行的:

float px = dpToPixels(16, getResources()); // 16 dp to pixels precise
int pxOffset = (int) px; // 16dp rounded down to whole pixels
int pxSize = (int) (0.5f + px); // 16dp rounded up to whole pixels

现在您可以在布局中使用这些值,pxOffset 用于填充、边距等(可以为零),pxSize 用于宽度和高度(确保在至少 1px 大小,除非为零)。使用适用于布局和 float 资源的 int Resources.getDimensionPixelOffset(int)int Resources.getDimensionPixelSize(int) 方法时,会进行相同的计算.getDimension(int) 适用于精确绘图。

编辑

Elevation 使用 float 值,因此使用精确尺寸完全没问题。

TranslationX、translationY 或 translationZ 是使用 float 值定义的。这些和更多 View 属性用于动画,因此使用平滑值是有意义的。如果手动设置,则使用整数来实现可预测的行为。

关于android - 为什么不应该使用 dpToPixel 来设置布局尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30300379/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com