<compatible-screens>
<screen android:screenSize=["small" | "normal" | "large"| "xlarge"]
android:screenDensity=["ldpi" |"mdpi" | "hdpi" | "xhdpi"] />
...
</compatible-screens>
<manifest>
指定应用需要兼容的每种屏幕配置。在manifest文件中只允许一个<compatible-screens>元素出现,但它能包含多个<screen>元素。每个<screen>元素都指定了这个应用需要兼容的屏幕的尺寸-密度的组合。
Android系统并不会读取这个<compatible-screens>的manifest元素(既不在安装时读取也不在运行时读取)。这个元素只是一个报告,并且它可以被扩展服务(例如Google Play)用来更好的理解特定屏幕配置的应用的兼容性以及为用户过滤这个应用。任何没有在这个元素中定义的屏幕都是和这个应用不兼容的屏幕。因此,扩展服务(例如Google Play)就不应该为这样的屏幕提供这个应用。
注意:一般来说,你不应该在manifest中使用这个元素。使用这个元素能显著减少你应用的用户群,因为如果对拥有一个你没有列出的设备的用户来说,他们将不允许安装你的应用。只有当这个应用绝对不能在所有设备上使用的时候,你才能使用这个终极手段。这个元素的替代方案,你应当按照Supporting Multiple Screens所说,为了提供对多种屏幕的支持,你应当对不同尺寸和密度的屏幕添加替换资源。
如果你只想对你的应用设置minimum屏幕尺寸,那么你应该使用<supports-screens>元素。例如,如果你想让你的应用只在large和xlarge尺寸的设备上使用,那么这个<supports-screens>元素允许你声明你的应用不支持small和normal尺寸的设备。于是扩展服务(例如Google Play)将过滤你的应用。你也能使用这个<supports-screens>元素来声明对于不同的屏幕尺寸是否系统应当重新调整你应用的尺寸。
关于Google Play如何使用这个元素和其它manifest元素过滤应用的详细内容参见Filters on Google Play。
<screen>
指定应用需要兼容的单个屏幕配置。
这个元素至少应该有一个实例被放入<compatible-screens>元素中。这个元素必须包含android:screenSize和android:screenDensity属性(如果你没有声明这两个属性,那么这个<screen>元素就会被忽略)。
属性:
android:screenSize
要求.对这个屏幕指定屏幕尺寸
接受的值:
·small
·normal
·large
·xlarge
关于屏幕尺寸的详细信息,参见Supporting Multiple Screens。
android:screenDensity
要求.对这个屏幕指定屏幕密度。
接受的值:
·ldpi
·mdpi
·hdpi
·xhdpi
关于屏幕密度的更多信息,参见Supporting Multiple Screens。
如果你的应用只兼容小或普通屏,和屏幕密度无关,那么你必须指定八种不同的<screen>元素,因为每种尺寸的屏幕都有四种不同的密度配置。你必须全部声明它们;因为任何一个你没。如果你的应用只兼容小屏和普通屏,那么你的manifest文件就会像如下样子:
<manifest ... >
...
<compatible-screens>
<!-- all small size screens -->
<screen android:screenSize="small" android:screenDensity="ldpi"/>
<screen android:screenSize="small" android:screenDensity="mdpi"/>
<screen android:screenSize="small" android:screenDensity="hdpi"/>
<screen android:screenSize="small" android:screenDensity="xhdpi"/>
<!-- all normal size screens -->
<screen android:screenSize="normal" android:screenDensity="ldpi"/>
<screen android:screenSize="normal" android:screenDensity="mdpi"/>
<screen android:screenSize="normal" android:screenDensity="hdpi"/>
<screen android:screenSize="normal" android:screenDensity="xhdpi"/>
</compatible-screens>
<application... >
...
<application>
</manifest>
API Level 9