gpt4 book ai didi

android - 如何在android中计算LDPI,MDPI,HDPI,XXHDPI,XXXHDPI的dp

转载 作者:行者123 更新时间:2023-11-29 15:37:18 36 4
gpt4 key购买 nike

我的屏幕是在 XHDPI 中设计的。

我必须将 dp 的所有填充、边距值转换为 LDPIMDPIHDPIXXHDPIXXXHDPI

任何人都可以建议我如何计算以下屏幕的 dp 值,假设我的 xhdpi 中的 paddingTop56dp 那么我们为 ldpimdpixxhdpixxxhdpi 赋予什么值

请推荐我。

最佳答案

与密度无关的像素 (dp)

A virtual pixel unit that you should use when defining UI layout, to express layout dimensions or position in a density-independent way.The density-independent pixel is equivalent to one physical pixel on a 160 dpi screen, which is the baseline density assumed by the system for a "medium" density screen. At runtime, the system transparently handles any scaling of the dp units, as necessary, based on the actual density of the screen in use. The conversion of dp units to screen pixels is simple: px = dp * (dpi / 160). For example, on a 240 dpi screen, 1 dp equals 1.5 physical pixels. You should always use dp units when defining your application's UI, to ensure proper display of your UI on screens with different densities.

如果您想知道 xhdpi 中的 56dp 是什么,那么 ldpi、mdpi、hdpi、xxhdpi、xxxhdpi 中的 56dp 也是如此 - 正如定义所示,它是与密度无关的像素

当您进行设计时,您想知道一件事:

设计的基线比例是多少?

一些快速答案:通常是 1x、2x,极少数情况下是 3x

Android 定义了以下密度:

  • ldpi(低)~120dpi
  • mdpi(中)~160dpi
  • hdpi(高)~240dpi
  • xhdpi(超高)~320dpi
  • xxhdpi(超高)~480dpi
  • xxxhdpi(超超超高)~640dpi

有一些罕见的情况介于两者之间,例如 tvdpi,但在 99% 的情况下,您可以简单地忽略这些情况。

当设计师说1x时,他们通常指的是mdpi,2x(或retina)指的是xhdpi,3x设计是在xxhdpi中完成的.

一旦了解了基线,您就知道如何将设计文档中的像素值转换为倾角(与密度无关的像素)

公式非常简单,但如果您怀疑自己,请随时尝试其中一种在线转换器工具:

公式如下:dp = px/(dpi/160),其中dpi是当前屏幕密度,px是基本 (1x) 密度值。

或者other way around .

另外,请记住阅读 Best Practices来自 Android 开发者页面!


如果您最终仍然在尺寸文件中使用不推荐的 px,请查看 this answer了解如何为不同的屏幕创建不同的值文件夹。

关于android - 如何在android中计算LDPI,MDPI,HDPI,XXHDPI,XXXHDPI的dp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47259694/

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