我希望我的应用程序能够在任何 Android 设备上正确显示,无论屏幕大小、屏幕密度或屏幕高宽比如何。我想支持与 API 8 一样古老的 Android 设备。我可以为纵向、横向和可能的超大屏幕创建单独的布局,但除此之外,我不想为不同的密度或屏幕尺寸创建不同的布局。
我已阅读有关支持多个屏幕的 Android 指南。我尝试遵循这些准则,例如,对于小部件,我将它们的高度和宽度设置为 wrap_content 或 fill_parent,并且我避免使用特定的像素测量值。对于图像,我为不同的密度提供替代位图资源,或者有时我使用具有与密度无关的像素 (dip) 的特定大小,因此系统将在屏幕上以不同的密度正确调整其大小。
在过去的 2 年里,我可能已经阅读了数十次该指南。
我知道我可以为特定的屏幕尺寸和密度定义特定的资源(例如布局),但是我想支持数十或数百部手机,所以这似乎是徒劳的。我在该指南中看到表 3显示了一些常见的屏幕尺寸,但我想确保我的应用程序几乎可以在每部手机上运行。
在我看来,我需要知道的是最窄的屏幕(倾角)和最短的屏幕。也就是说,我想知道高度与宽度的比例。
例如,在纵向中,也许我有一个按钮列表或其他小部件。我真的很想知道哪款手机最短:宽高比最大,所以我可以看看我的布局是否在底部被切断。也许我也有 3 个标签:我想知道最窄的屏幕,这样我就可以确保标签不会在右侧被切断。
如果我知道所有当前 Android 手机的最小和最大 h/w 比,对于纵向,我可以仅在两个 Android 虚拟设备(甚至只是 Eclipse 中的自定义屏幕)上进行测试。
我已经开始检查Wikipedia 的 Android 设备列表,但一定有人有更好的方法。