我正在开发Android应用程序,它将在Android手机(不是平板电脑)上广泛使用。 现在设计师给我设计了PSD文件,并要求我根据它设置元素的大小。
现在在这些文件中,例如一个元素的高度和宽度为90px,我应该在Android XML布局文件中设置多少DP?
更多我正在为ldpi,mdpi,hdpi和xdpi创建单个布局。 我尝试http://angrytools.com/android/pixelcalc/计算相同的内容,
但是如果我选择90PX,它会显示ld,md,hd和xd的不同DP大小。如何在可在各种设备上运行的单个布局文件中设置DP大小?
请指教, 问候, Bhavin。
答案 0 :(得分:5)
但是如果我选择90PX,它会显示ld,md,hd和的不同DP大小 XD。如何在可以运行的单个布局文件中设置DP大小 各种设备?
=>为了您的信息,DP代表密度无关像素,以及PX和DP之间的差异进入图片的位置。
因此,如果您真的想要提供所有分辨率/密度的兼容性,那么您必须在不同的值目录下的不同dimens.xml
中声明dp值。
与密度无关的像素相当于160 dpi屏幕上的一个物理像素和240 dpi屏幕上的1.5个物理像素。这可以使用px = dp * (dpi / 160)
计算。
声明密度值的比率为:xhdpi:2.0,hdpi:1.5,mdpi:1.0(基线),ldpi:0.75
标准做法是在不同的values目录下的不同dimens.xml中声明dp值(在所有值目录中具有相同的名称),并在需要的地方引用特定的维度值。根据密度值,Android系统将决定使用特定的密度值(我的意思是从特定的dimens.xml
文件中获取dp值。)
例如:
values/
dimens.xml
values-land/
dimens.xml
values-xlarge-land
dimens.xml
values-large
dimens.xml
答案 1 :(得分:2)
您可以通过以下链接将dp转换为pix。
http://labs.rampinteractive.co.uk/android_dp_px_calculator/
(OR)
您可以根据设备密度计算像素。 LDPI - 0.75 MDPI - 1.0 HDPI - 1.5 XHDPI-2.0
答案 2 :(得分:2)
您可以保留单个layout.xml并为不同的设备创建多个值目录(具有不同的维度值)。
答案 3 :(得分:1)
一种方法是为不同的设备创建单个layout.xml和多个值目录。
其他方式是DP,因为Dyou知道密度无关像素,所以要使用 DP计算像素基础的DP值在一个屏幕分辨率HDPI,XHPDI,LDPI,MDPI等推荐(HDPI)。正如你有一个psd问你的UI设计师哪个屏幕类型是基于它计算愤怒工具的DP帮助并在你的布局中使用那个DP。由于 Dp也不完全准确在各种设备需要有些时候调整使用当时的值目录。
感谢。