【问题标题】:Same image in res/drawable and res/drawable-xhdpi appears as different sizesres/drawable 和 res/drawable-xhdpi 中的相同图像显示为不同的大小
【发布时间】:2014-04-07 15:27:18
【问题描述】:

我有一个图片,rectangle.png。它的尺寸是 75x197。它位于 res/drawable 和 res/drawable-xhdpi 中。它以这样的网格布局多次显示(来自 Nexus-10 的屏幕截图,一个 xhdpi 设备):

如果我从 res/drawable-xhdpi 中删除图像文件,从而导致布局使用相同的图像,但在 res/drawable 中,屏幕变为:

为什么会这样?

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    为什么会这样?

    res/drawable/,对于位图,等同于res/drawable-mdpi/。 Android 认为您的图像是为在 160dpi 的-mdpi 屏幕上使用而设计的。像 Nexus 10 这样的-xhdpi 设备是 320dpi。因此,Android 会在两个维度上将像素加倍,这样在-xhdpi 设备上看到的图像将与在-mdpi 设备上看到的相同图像的大小相同 /p>

    【讨论】:

    • 谢谢,不知道res/drawable == res/drawable-mdpi
    【解决方案2】:

    发生这种情况是因为 android 在应该使用 xhdpi 时使用了 xhdpi 中 mdpi 图像的大小,所以它正在放大它,为了在每个屏幕上使用正确的图像大小,设计一个图像适合 mdpi 屏幕作为其他分辨率的参考,使用模拟器查看它的外观,mdpi 屏幕约为 160dpi 而 xhdpi 约为 320dpi,然后使用此缩放因子根据您所需的分辨率对其进行缩放:

    xhdpi 是 mdpi 的 2 倍尺寸 ldpi 是 mdpi 的 0.75 倍 hdpi 是 mdpi 的 1.5 倍

    在设计布局时,此信息将根据开发者指南为您提供帮助:

    xlarge 屏幕至少为 960dp x 720dp 大屏幕至少为 640dp x 480dp 普通屏幕至少为 470dp x 320dp 小屏幕至少为 426dp x 320dp

    这个公式有助于从 px 转换为 dpi 或 dp: px = dp * (dpi / 160

    【讨论】:

      猜你喜欢
      • 2012-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多