【发布时间】:2017-09-28 08:30:07
【问题描述】:
我制作了小米红米3s(294dpi)的avd,规格如下:
Android 中的广义密度为:
- Ldpi(低)~ 120 dpi -> dp = px * 0.74
- Mdpi(平均)~ 160 dpi -> dp = px * 1
- Hdpi(高)~ 240 dpi -> dp = px * 1.5
- Xhdpi (extraalta) ~ 320 dpi -> dp = px * 2
- Xxhdpi (extra extraalta) ~ 480 dpi -> dp = px * 3
- Xxxhdpi (extra extra extraalta) ~ 640 dpi -> dp = px * 4
当我创建带有设备规格的avd时,分配的密度是xhdpi(x2),但实际的设备密度因子小于x2,与大多数设备一样,所以预览结果与设备的实际外观不匹配屏幕。比如Nexus 5x也是这样,资源密度是xxhdpi(x3),但实际密度是2.63
在 Android Studio 中,Nexus 5x 或 Pixel XL 等模拟设备分别指定了 420dpi 和 560dpi 的特殊密度,其中密度因子约为 2.6 (xxhdpi) 和 3.5 (xxxhdpi)。
确定我用过的小米红米3S的宽度dp及其密度系数:
dpi/160 = 密度像素值 294/160 = 1,8375
我用https://stackoverflow.com/a/5104104/4114846计算了真实密度
结果是294dpi的密度,实际密度因子是1.83,但是系统分配的资源文件夹是xhdpi(x2),预览对应的是广义密度。
如何通过指定设备的密度或其密度因子来创建 avd 和预览,使其看起来像实际设备?
如果你不能用android studio指定,我们有什么替代方案?
【问题讨论】:
-
使用实际设备。恕我直言,尝试使用模拟器模仿特定的 Android 设备是徒劳的。使用模拟器测试一般场景。
-
感谢您这么快回答。我不能有一个真正的设备。我的需求来自无法很好地看到屏幕的用户报告。必须有某种方法来正确模拟设备。
-
请用户向您发送屏幕截图。如果您的 UI 对密度的微小变化如此敏感,那么您在 UI 中就有主要问题。您应该能够在各种模拟器以及您可以访问的任何设备中看到这些问题。除此之外,使用可以为您提供屏幕截图的托管应用测试服务。
标签: android android-studio avd screen-density