我们应该使用准确的DPI号码来实现多种屏幕尺寸吗?

时间:2016-05-17 06:49:50

标签: android resolution dpi

我知道我们有一些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 )。

2 个答案:

答案 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系统可以通过两种方式帮助您的应用实现密度独立性:

  1. 系统根据当前屏幕密度缩放dp单位
  2. 如有必要,系统会根据当前屏幕密度将可绘制资源缩放到适当的大小
  3. 所以在你的情况下,最好提供两种资产。在运行时,系统会根据当前设备屏幕的通用大小或密度,为您的应用程序使用适当的资源。