【问题标题】:How to set height and width in DP from PX如何从PX设置DP中的高度和宽度
【发布时间】:2014-11-11 12:51:01
【问题描述】:

我正在开发适用于安卓手机(不是平板电脑)的广泛应用的安卓应用程序。 现在设计师给我设计好的PSD文件,让我根据它来设置元素的大小。

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

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

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

请指教, 问候, 巴文。

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    但如果我选择 90PX,它会为 ld、md、hd 和 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 (baseline), ldpi: 0.75

    标准做法:

    标准做法是在不同值目录下的不同dimens.xml 中声明dp 值(在所有值目录中具有相同名称),并在需要时引用特定维度值。根据密度值,Android系统会决定自己使用特定的密度值(我的意思是dp值取自特定的dimens.xml文件)。

    例如:

    values/
        dimens.xml
    values-land/
        dimens.xml
    values-xlarge-land
        dimens.xml
    values-large
        dimens.xml
    

    【讨论】:

      【解决方案2】:

      您可以从以下链接将 dp 转换为 pix。

      http://labs.rampinteractive.co.uk/android_dp_px_calculator/

      (或)

      您可以根据设备密度计算像素。 低密度脂蛋白指数 - 0.75 MDPI - 1.0 HDPI - 1.5 XHDPI- 2.0

      【讨论】:

        【解决方案3】:

        您可以保留单个 layout.xml 并为不同的设备创建多个值目录(具有不同的维度值)。

        【讨论】:

          【解决方案4】:

          一种方法是为不同的设备创建单个 layout.xml 和多个值目录。

          另一种方法是 DP,因为你知道是密度无关像素,所以要使用 DP 计算像素的 DP 值基于一个屏幕分辨率 HDPI、XHPDI、LDPI、MDPI 等推荐(HDPI)。正如你有一个 psd 询问你的 UI 设计师哪种屏幕类型是基于计算愤怒工具的 DP 帮助并在你的布局中使用那个 DP。因为 Dp 也不完全准确 各种设备需要一些调整一些时间使用当时的价值目录

          谢谢。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-01-23
            • 2017-11-25
            • 2011-07-12
            • 2011-08-20
            • 2017-12-26
            • 1970-01-01
            • 2011-01-25
            • 2015-04-24
            相关资源
            最近更新 更多