如何在PX中设置DP的高度和宽度

时间:2014-11-11 04:31:30

标签: android android-layout

我正在开发Android应用程序,它将在Android手机(不是平板电脑)上广泛使用。 现在设计师给我设计了PSD文件,并要求我根据它设置元素的大小。

现在在这些文件中,例如一个元素的高度和宽度为90px,我应该在Android XML布局文件中设置多少DP?

更多我正在为ldpi,mdpi,hdpi和xdpi创建单个布局。 我尝试http://angrytools.com/android/pixelcalc/计算相同的内容,

但是如果我选择90PX,它会显示ld,md,hd和xd的不同DP大小。如何在可在各种设备上运行的单个布局文件中设置DP大小?

请指教, 问候, Bhavin。

4 个答案:

答案 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也不完全准确在各种设备需要有些时候调整使用当时的值目录

感谢。