【问题标题】:Android emulator uses wrong layout resourcesAndroid 模拟器使用错误的布局资源
【发布时间】:2023-03-27 12:33:01
【问题描述】:

我正在尝试为我正在编写的应用程序支持尽可能多的 android 设备,但在尝试这样做时,我发现了一个奇怪的问题。我有每个屏幕尺寸和密度组合的可绘制文件夹(例如 drawable-small-mdpi、drawable-large-ldpi 等)和每个屏幕尺寸限定符的布局文件夹。我设置了模拟器来测试 small-ldpi(我只使用 WQVGA432)和 small-hdpi 场景(我使用 WQVGA 皮肤并将抽象密度设置为 240)。我发现的问题是 small-hdpi 模拟器访问正确的 layout-small 文件夹,而 small-ldpi (WQVGA432) 模拟器使用 layout-normal 和 drawable-normal-ldpi 文件夹。尽管 WQVGA 仿真器的规范应该满足此处支持多屏幕文章中列出的要求,但 WQVGA 仿真器不会使用正确的资源似乎很奇怪:

http://developer.android.com/guide/practices/screens_support.html

密度:

用于低密度 (ldpi) 屏幕 (~120dpi) 的 ldpi 资源。

用于中等密度 (mdpi) 屏幕 (~160dpi) 的 mdpi 资源。

用于高密度 (hdpi) 屏幕 (~240dpi) 的 hdpi 资源。

用于超高密度 (xhdpi) 屏幕 (~320dpi) 的 xhdpi 资源。

屏幕尺寸:

xlarge 屏幕至少为 960dp x 720dp

大屏幕至少为 640dp x 480dp

普通屏幕至少为 470dp x 320dp

小屏幕至少为 426dp x 320dp

WQVGA432:
屏幕:240 x 432
密度:低(120)

大型HDPI:
屏幕:240 x 432
密度:高(240)

有人知道问题是什么或如何解决吗?

【问题讨论】:

  • 如果是真的,你能标记我的答案吗?

标签: android android-layout android-emulator android-screen-support


【解决方案1】:

range of screens supported 所述,设备没有特定的分辨率和密度区间。所以这不是问题,只是一个小精灵^^。还引用了 Supporting Multiple Screens 文档;

  • "注意:这些最小屏幕尺寸在 Android 3.0 之前并没有很好的定义,因此您可能会遇到一些设备被误分类为正常和大。这些也是基于屏幕的物理分辨率,因此可能因设备而异——例如,带有系统栏的 1024x720 平板电脑实际上由于系统栏使用而对应用程序可用的空间稍少。”

【讨论】:

  • 在这种情况下,您应该如何测试这些屏幕/密度组合?
  • 尝试使用 API lvl 11 (Honeycomb) 及更高版本创建 AVD,他们声称平衡了判断机制。祝你好运!
  • 我需要在 8 级进行开发。在 11 级 AVD 上运行应用程序会产生我应该注意的任何负面影响吗?
  • 不,所有上层 API 都对其前身具有向后兼容性。尽管如此,如果您对小型布局和普通布局有不同的布局,结果可能会欺骗您,因为它可能会在极少数情况下误判屏幕尺寸。但是,您必须相信谷歌的判断是正确的。相信我,一旦我尝试用 java 实现这个系统,这将使我能够完全控制我的一个项目的资源和布局处理。即使它成功了,我也意识到重新发明轮子是不明智的。最后,始终在真实设备上测试您的应用,否则不可避免的会出现奇怪的结果。
  • 这对我正在测试的一些场景有所帮助,但是,正如你所说,一些仍然有点奇怪。谢谢您的帮助。我们可以使用的测试设备数量有限,所以我只需要尽我所能使用这些不稳定的模拟器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-15
  • 1970-01-01
  • 2015-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多