我想创建一个与大量设备和屏幕兼容的布局。正如我一直在研究的那样,我发现最常见的屏幕分辨率是 249x320、480x800、600x1024、720x1280(以及与这些分辨率成比例的其他一些屏幕)。
嗯,在阅读文档后我发现有两种方法可以做到这一点。 在 Android 3.2 版本之前,我可以为布局使用限定符,例如“small、normal、large、xlarge”,并将它们与“port”(纵向)或“land”(横向)结合使用。
现在,第二种方法(似乎是最推荐的)仅适用于 Android 3.2 及更高版本。您必须指定必须使用布局的最小宽度,无论屏幕方向如何 (???)。
由于在使用第二种方法时不能指定端口或土地限定符,我更喜欢第一种。 我的问题是:第一种方式是否兼容Android 3.2及之后的版本?我必须对 Android < 3.2 使用第一种方法,对 Android > 3.2 使用第二种方法吗?如果是这样,我应该创建两个项目,或者将这两种方法结合起来(创建大约 10 种布局尺寸,用于通用尺寸限定符和特定的最小宽度限定符)。我想这需要更多资源。
谢谢,对不起我的脏话。
最佳答案
在 Android 中,您不会根据像素设计布局...您根据与密度无关的像素(dip 或 dp)设计它们。这些是按设备每英寸屏幕密度的点数缩放的设备像素。 Android 有 4 个通用屏幕密度桶,您必须在适当的文件夹下为每个桶提供可绘制对象(res/drawable-ldpi、res/drawable-mdpi、res/drawable-hdpi、res/drawable-xhdpi)。
使您的布局与多种设备兼容的其他方法是使用 9png 可拉伸(stretch)图形,并使用依赖于 dp 的 XML 可绘制对象的尺寸。
安卓屏幕支持推荐阅读:
http://developer.android.com/guide/practices/screens_support.html
就最小宽度限定符而言,您忽略了最小宽度以 dp 而非像素指定的事实。查本节表2:
http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources
第一种方法适用于所有设备,包括 Android 3.2+。
关于Android 多屏限定符定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10094174/