yeb*_*iah 0 android android-virtual-device android-studio screen-density
我创建了小米红米 3s (294dpi) 的 avd,其规格为:
Android中的广义密度是:
当我用设备规格创建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
我用/sf/answers/357287311/计算了实际密度
结果是密度为294dpi,实际密度因子为1.83,但是系统分配的资源文件夹是xhdpi(x2),预览对应的是广义密度。
如何通过指定设备的密度或其密度因子来创建 avd 和预览,使其看起来像实际设备?
如果你不能用android studio指定,我们有什么选择?
小智 6
找到您的 AVD 文件夹。
C:\users\<user>\.android\avd
Run Code Online (Sandbox Code Playgroud)
打开设备的文件夹并编辑行:
hw.lcd.density=320
Run Code Online (Sandbox Code Playgroud)
在
config.ini
Run Code Online (Sandbox Code Playgroud)
虽然您计算了 294 ppi,但不允许使用 294。允许的值为:
120, 160, 213, 240, 280, 320, 360, 400, 420, 480, 560, 640
Run Code Online (Sandbox Code Playgroud)
请注意,这些是密度:
0.75, 1, 1.33, 1.5, ...
Run Code Online (Sandbox Code Playgroud)
请注意,1.33 不适合 ldpi、mdpi、hdpi、...
它是必需的,因此 mdpi 和 hpdi 之间存在一个值。我怀疑有些硬件具有 213 ppi 显示器,但硬件规格经常改变。今天的手机在保持相同像素数的同时变得越来越大,因此几年前的 4.5 英寸、213 ppi 手机已被 5 英寸、196 ppi 手机取代。
硬件工厂将逻辑密度设置为他们喜欢的任何数字,但如果合理,他们会将其设置为尽可能接近物理密度。因此,即使设备实际上是 196,它也会被设置为 213。
不幸的是,这会导致您遇到的问题。由于您说物理屏幕尺寸的分辨率为 294 ppi,因此硬件很可能设置为密度 1.75 (280 ppi)。这比物理 ppi 小 5%,但设备报告的逻辑密度与物理密度不同(例如,213 比 196 大 8%)是很常见的。
因为 280 正好介于 240 hdpi 和 320 xhdpi 之间,所以我不知道它将如何缩放视图。模拟器可能会完美呈现您的布局,但它可能使用 hdpi 文件夹中的可绘制对象。您的客户的硬件可能会从 xhdpi 文件夹中选择可绘制对象,这将非常不同地缩放它们。
| 归档时间: |
|
| 查看次数: |
2103 次 |
| 最近记录: |