【问题标题】:Best way to target all screen DPIs (without tablets)定位所有屏幕 DPI 的最佳方式(无平板电脑)
【发布时间】:2017-03-15 05:29:43
【问题描述】:
我的应用程序将包含大约 100 张图片,并且仅适用于智能手机(无平板电脑)。所以我正在考虑针对所有屏幕 DPI 的最佳方法。现在有两种方法:
- 将所有图像设为超高或超高 DPI
- 为每个 DPI 制作所有图像
第一种方式当然是更快的方式,并且适用于 Android 的自动缩放功能。第二种方法非常耗时,但可能是更好的方法。
你对我的情况有什么建议?
如果 MDP 是我的基准尺寸,它应该是什么尺寸?
我的所有图像都有“正确”的尺寸吗?
【问题讨论】:
标签:
android
android-layout
android-screen-support
【解决方案1】:
如果您想针对所有设备密度(即,如果您的应用将在 Google 的 Play 商店上发布,您的清单中有相应的过滤器),您应该包含所有“常规”密度的资源。
正如您所指出的,您只能包含最高分辨率的资源,但这意味着低密度设备将不得不缩减它们,使用系统资源(CPU 和 RAM)并在运行时冒着随机OutOfMemoryErrors 的风险.相反,仅使用较低分辨率的资源会导致高密度设备上的视觉质量下降。
截至 2017 年,您应该在智能手机应用中支持的密度列表如下:
-
mdpi (1x)(可选)
-
hdpi (1.5x)
-
xhdpi (2x)
-
xxhdpi (3x)
-
xxxhdpi (4x)
这忽略了tvdpi 密度(这不是“标准”密度,它是 1.33x)和 ldpi 密度非常过时。 mdpi 设备也有 very low market share,并且主要是平板电脑。您应该根据 Play 商店的 100 MB APK 限制,考虑您的应用类型、普通用户及其设备以及其他因素来做出决定。
另一个好方法是使用矢量绘图,特别是用于图标和较小的图像。这允许您只有一个文件可以在每个屏幕上完美呈现。