我有一个具有以下属性的 ImageView:

   android:layout_width="match_parent"
   android:layout_height="160dp"

UI 开发人员询问我想要的图像大小(以 px 为单位)。我应该问什么尺寸?我应该为不同的设备要求不同的尺寸吗?

注意

我没有具有特定高度和宽度的 ImageView。我的 ImageView 宽度是 match_parent 不是特定的宽度。

所有答案都说我应该使用转换器,如何将 match_parent 转换为 px

根据答案,我应该问六个图像,不是吗?

最佳答案

您应该向 UI 开发人员提供最高的屏幕密度(以像素为单位),然后自行调整以降低密度。

通常,Android 应用程序将支持最小屏幕密度 ldpi 和最大屏幕密度 xxxhdpi

步骤 1: 如果您希望图像大小为 160 x 160 dp,则为 UI 开发人员提供与最大屏幕密度相关的最高图像大小。
160 x 4 = 640x640 px (why multiply by 4? I will explain later)
第 2 步: 根据屏幕密度将图像 640x640 px 缩放到较小的尺寸

  • ldpi:160 x 0.75 = 120x120 像素
  • mdpi:160 x 1 = 160x160 像素
  • hdpi:160 x 1.5 = 240x240 像素
  • xhdpi:160 x 2 = 320x320 像素
  • xxhdpi:160 x 3 = 480x480 像素
  • xxxhdpi:160 x 4 = 640x640 像素

    提示: 找到您的图像大小对应于 mdpi 密度屏幕(称为 base density1X 密度)然后通过以下公式缩放到其他密度

    android - 我应该向 UI 开发人员询问什么图像尺寸?-LMLPHP

    更新:https://material.io/tools/devices/ 开始,基本密度屏幕的屏幕尺寸是 360x640 px 。因此,您的 ImageView 大小将是 360x160 px 密度屏幕上的 1X
    ldpi: 270x120 px
    mdpi: 360x160 px
    hdpi: 540x240 px
    xhdpi: 720x320 px
    xxhdpi: 1280x480 px
    xxxhdpi: 1440x640 px
    

    关于android - 我应该向 UI 开发人员询问什么图像尺寸?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51627488/

  • 10-10 08:21