Android多屏幕限定符定义

Android多屏幕限定符定义,android,size,screen,qualifiers,Android,Size,Screen,Qualifiers,我想创建一个与大量设备和屏幕兼容的布局。随着我的研究,我发现最常见的屏幕分辨率是249x320、480x800、600x1024、720x1280(以及一些与这些分辨率成比例的其他屏幕) 嗯,在阅读了文档之后,我发现有两种方法可以做到这一点。 在3.2版本之前,我可以对布局使用限定符,如“小、普通、大、xlarge”,并将它们与“port”(纵向)或“land”(横向)组合 现在,第二种方法(这似乎是最推荐的)只适用于Android 3.2及更高版本。您必须指定布局必须使用的最小宽度,无论屏幕方

我想创建一个与大量设备和屏幕兼容的布局。随着我的研究,我发现最常见的屏幕分辨率是249x320、480x800、600x1024、720x1280(以及一些与这些分辨率成比例的其他屏幕)

嗯,在阅读了文档之后,我发现有两种方法可以做到这一点。 在3.2版本之前,我可以对布局使用限定符,如“小、普通、大、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可拉伸图形,并使用依赖于dp的XML可拉伸图形作为其尺寸

Android屏幕支持推荐阅读:

至于最小宽度限定符,您缺少一个事实,即最小宽度是以dp而不是像素指定的。请查看本节中的表2:


第一种方法适用于所有设备,包括Android 3.2+。

最好的方法是使用两种布局限定符:-

  • res\layout大型
  • res\layout-sw720dp

  • 使用.

    在两个目录中设置相同的布局。感谢您的解释。“res/drawable-??pi”用于存储图像和样式元素,如背景定义等,以保持每个分辨率的质量(如我所知)。提供drawable-sw600dp-mdpi、drawable-sw600dp-mdpi等是否有效或必需。@Arun:您可以提供任意数量的资源集,并根据需要使用任意数量的限定符组合。在每台设备上,系统都会寻找与设备规格最匹配的最佳限定符组合。@Theo:当我尝试使用drawable-s时w600dp mdpi,drawable-sw720dp-hdpi,drawable-sw720dp-xhdpi,两个具有mdpi和hdpi密度的选项卡从drawable-sw720dp-xhdpi获取了资源。我对此行为一无所知。@Arun:每个设备制造商输入所需的分辨率,而与屏幕每英寸的实际点数无关。如果设备制造商已将设备指定为XHDPI设备,然后它将从XHDPI获取其资源。您如何确定您的设备是MDPI和HDPI?