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

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值