我有一个具有这些属性的 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(为什么要乘以4?后面会解释)
第 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 density
或 1X
density)然后缩放到其他密度以下公式
更新: 来自 https://material.io/tools/devices/ ,基本密度屏幕的屏幕尺寸为 360x640 px
。因此,在 1X
密度屏幕上,您的 ImageView
大小将为 360x160 px
。
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/