我希望我的应用能够在任何Android设备上正确显示,而不管屏幕尺寸,屏幕密度或屏幕高宽比如何.我想支持API 8之前的Android设备.我可以为纵向,横向和xlarge屏幕创建单独的布局,但除此之外,我不想为不同的密度或屏幕尺寸创建不同的布局.

我已经阅读了supporting multiple screens上的Android指南.我尝试遵循这些准则,例如,对于小部件,我将其高度和宽度设置为wrap_content或fill_parent,并且避免使用特定的像素尺寸.对于图像,我为不同的密度提供了替代的位图资源,或者有时我使用与密度无关的像素(dip)的特定大小,因此系统将在屏幕上以不同的密度正确调整其大小.

在过去的两年中,我可能已经阅读了数十次.

我知道我可以为特定的屏幕尺寸和密度定义特定的资源(例如布局),但是我想支持数十或数百个电话,所以这似乎是徒劳的.我看到that guide中的表3显示了一些常见的屏幕尺寸,但是我想确保我的应用程序几乎可以在所有手机上运行.

在我看来,我需要知道的是最窄的屏幕(浸入式)和最短的屏幕.也就是说,我想知道高度与宽度的比率.

例如,在纵向方向上,也许我有一个按钮或其他小部件的列表.我真的很想知道哪部手机最短:宽高比最大,所以我可以查看一下是否在底部截断了我的布局.也许我还有3个标签:我想知道最窄的屏幕,所以我可以确保右边的标签没有被切掉.

如果我知道所有当前Android手机的最小和最大h / w比率,那么对于肖像,我只能在两个Android虚拟设备(甚至是Eclipse中的自定义屏幕)上进行测试.