我知道我们有一些DPI标准,我们可以用它来支持多种屏幕尺寸:
ldpi (low) ~120dpi
mdpi (medium) ~160dpi
hdpi (high) ~240dpi
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi
但是当我计算一些真实设备时,例如 LG G3 - DPI 为538。
所以我的问题是我们是否需要使用准确的DPI数字来缩放图像,...或者只是让它成为 xxhdpi ( 480dpi )之一或者 xxxhdpi ( 640dpi )。
答案 0 :(得分:2)
我认为,我认为你不应该关心设备的信息dpi。您应该只专注于为某些类型的屏幕提供图像,大小(dp,sp)等:
ldpi (low) ~120dpi
mdpi (medium) ~160dpi
hdpi (high) ~240dpi
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi
=============================================== ========================== 例: 你可能知道1 px = dp(dpi / 160)
因此,如果您的图像大小为32 x 32 px,屏幕160 dpi。这意味着您的图像大小为32 x 32 dp。
现在你想在xxhdpi(extra-extra-high)~480dpi上进行缩放。
On xxhdpi(extra-extra-high)~480dpi:1 px = dp(480/160)= 3dp
然后你只需要提供尺寸为32 * 3 x 32 * 3 px = 96 x 96 px的另一幅图像
答案 1 :(得分:0)
您只需提供正确的资产,Android将负责其余的工作。您可以查看documentation了解详情。
Android系统可以通过两种方式帮助您的应用实现密度独立性:
所以在你的情况下,最好提供两种资产。在运行时,系统会根据当前设备屏幕的通用大小或密度,为您的应用程序使用适当的资源。