我正在开发 Android 应用程序,该应用程序可在 Android 手机(而非平板电脑)上广泛运行。 现在设计师给了我设计好的PSD文件,并要求我根据它设置元素的大小。
现在,在这些文件中,例如一个元素的高度和宽度为 90px,我应该在 Android XML 布局文件上设置多少 DP?
更多我正在为 ldpi、mdpi、hdpi 和 xdpi 创建单一布局。 我试过http://angrytools.com/android/pixelcalc/计算相同,
但如果我选择 90PX,它会显示 ld、md、hd 和 xd 不同的 DP 大小。如何在可以在各种设备上运行的单个布局文件中设置 DP 大小?
请多多指教, 问候, 巴文。
最佳答案
but if I choose 90PX, it shows different DP size for ld, md, hd and xd. How can I set DP size in a single layout file that can run on variety of devices?
=> 供您引用,DP 代表密度无关像素,这就是 PX 和 DP 之间的区别所在。
因此,如果您确实想提供对所有分辨率/密度的兼容性,那么您必须在不同值目录下的不同 dimens.xml
中声明 dp 值。
与密度无关的像素相当于 160 dpi 屏幕上的 1 个物理像素和 240 dpi 屏幕上的 1.5 个物理像素。这可以使用 px = dp * (dpi/160)
进行计算。
声明密度值的比率为:xhdpi: 2.0、hdpi: 1.5、mdpi: 1.0(基线)、ldpi: 0.75
标准做法:
标准做法是在不同值目录下的不同dimens.xml中声明dp值(在所有值目录中具有相同的名称),并在需要时引用特定的维度值。根据密度值,Android 系统将决定自己使用特定的密度值(我的意思是从特定的 dimens.xml
文件中获取 dp 值)。
例如:
values/
dimens.xml
values-land/
dimens.xml
values-xlarge-land
dimens.xml
values-large
dimens.xml
关于android - 如何从 PX 设置 DP 的高度和宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26857499/