当前位置:编程学习 > XML/UML >>

AndroidManifest.xml文件详解(compatible-screen)

语法(SYNTAX):

<compatible-screens>
    <screenandroid:screenSize=["small" | "normal" | "large" | "xlarge"]
            android:screenDensity=["ldpi" | "mdpi" | "hdpi" | "xhdpi"] />
    ...
</compatible-screens>

包含于(CONTAINED IN):

<manifest>

说明(DESCRIPTION)):

这个元素用于指定那些屏幕配置跟应用程序是兼容的。在应用的清单中只允许有一个<compatible-screent>元素的实例,但是它能够包含多个<screen>元素。每个<screen>元素指定一个特定的跟应用程序兼容的尺寸---密度组合。

Android系统不会读取<compatible-screen>清单元素(无论是在安装的时候,还是在运行的时候)。这个元素的信息只能被外部服务使用(如Google Play),以便使其能够更好的理解应用程序跟指定屏幕配置的兼容性。任何没有在这个元素中声明的屏幕配置,都是跟应用程序不兼容的屏幕。这样,外部服务(如Google Play)就不应该把应用程序提供给带有这样屏幕的设备。

警告:通常不应该使用这个清单元素。因为使用这个元素会显著的降低应用程序潜在的用户群。如果设备带有一个应用程序清单中没有列出屏幕配置,那么就不会允许用户安装这个应用程序。在肯定应用程序在所有的屏幕配置上都不会工作时,最后才使用这个方法。相反为了给多个屏幕提供完全的支持,应该按照“支持屏幕多种配置”指南(http://developer.android.com/guide/practices/screens_support.html)来给不同的屏幕尺寸和密度来添加可选的资源。

如果只想给应用程序设置一个最小的屏幕尺寸,那么就应该使用<supports-screens>元素。例如,如果要让应用程序只对大屏幕(large)或超大屏幕(xlarge)的设备有效,那么<supports-screen>元素就要声明应用程序不支持小屏幕(small)和普通屏幕(normal)的设备。外部服务(如Google Play)根据<supports-screen>的设置来过滤应用程序。还能够使用<supports-screens>元素来声明系统是否应该调整应用程序,以便适应不同的屏幕尺寸。

子元素(CHILD ELEMENTS):

<screen>

这个元素指定一个跟应用程序兼容的屏幕配置。

在<compatible-screens>元素内部,至少要有一个这个元素的实例。这个元素必须同时包含android:screenSize和android:screenDensity属性,如果没有同时声明,那么这个元素就会被忽略。

属性(ATTRIBUTES):

android:screenSize

指定跟应用程序兼容的屏幕配置的屏幕尺寸。可以是以下的值:

·  small

·  normal

·  large

·  xlarge

android:screenDensity

指定跟应用程序兼容的屏幕配置的屏幕密度,可以是以下值:

·  ldpi

·  mdpi

·  hdpi

·  xhdpi

例子(EXAMPLE):

如果应用程序仅跟小屏和普通屏幕的设备兼容,而不管屏幕的密度,那么必须要指定八个不同的<screen>元素,因为每个屏幕尺寸都有四种不同密度的配置。必须对这些配置逐一声明;任何没有指定的尺寸和密度的组合,都会被认为这个屏幕配置跟应用程序不兼容。如果应用程序只跟小屏幕和普通屏幕兼容,那么清单配置如下:

<manifest ... >
    ...
    <compatible-screens>
        <!-- all small size screens -->
        <screenandroid:screenSize="small"android:screenDensity="ldpi"/>
        <screenandroid:screenSize="small"android:screenDensity="mdpi"/>
        <screenandroid:screenSize="small"android:screenDensity="hdpi"/>
        <screenandroid:screenSize="small"android:screenDensity="xhdpi"/>
        <!-- all normal size screens -->
        <screenandroid:screenSize="normal"android:screenDensity="ldpi"/>
        <screenandroid:screenSize="normal"android:screenDensity="mdpi"/>
        <screenandroid:screenSize="normal"android:screenDensity="hdpi"/>
        <screenandroid:screenSize="normal"android:screenDensity="xhdpi"/>
    </compatible-screens>
    <application ... >
        ...
    <application>
</manifest>

引入(INTRODUCED IN):

API Level 9

 


摘自 FireOfStar的专栏

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,