当前位置: 首页 > 知识库问答 >
问题:

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

经福
2023-03-14

我有一个用XHDPI设计的屏幕。

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

如果我在xhdpi中有paddingTop56dp,那么我们给ldpimdpixxhdpixxdpi的值是多少

请建议我。

共有1个答案

闾丘卓
2023-03-14

定义UI布局时应使用的虚拟像素单位,用于以与密度无关的方式表示布局尺寸或位置。密度无关像素相当于160 dpi屏幕上的一个物理像素,这是系统为“中等”密度屏幕假设的基线密度。在运行时,系统根据所用屏幕的实际密度,根据需要透明地处理dp单元的任何缩放。dp单元到屏幕像素的转换很简单:px=dp*(dpi/160)。例如,在240 dpi屏幕上,1 dp等于1.5个物理像素。在定义应用程序的UI时,应始终使用dp单位,以确保在不同密度的屏幕上正确显示UI。

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

使用设计时,您需要知道一件事:

一些快速的答案:通常是1倍,2倍,或者在极少数情况下是3倍

Android定义了以下密度:

  • ldpi(低)~120dpi

有一些罕见的案例介于两者之间,比如tvdpi,但在99%的案例中,你可以忽略这些。

html" target="_blank">设计师说1x时,他们通常指的是mdpi,2x(或retina)指的是xhdpi,3x设计是用xxhdpi完成的。

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

公式很简单,但如果你怀疑自己,请随意尝试在线转换器工具之一:

  • https://pixplicity.com/dp-px-converter
  • http://angrytools.com/android/pixelcalc/

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

或者反过来说。

此外,请记住阅读Android开发者页面中的最佳实践!

如果您仍然在不推荐的维度文件中使用px,请查看此答案,了解如何为不同屏幕创建不同的值文件夹。

 类似资料: