<supports-screens android:resizeable=["true"| "false"]
android:smallScreens=["true" | "false"]
android:normalScreens=["true" | "false"]
android:largeScreens=["true" | "false"]
android:xlargeScreens=["true" | "false"]
android:anyDensity=["true" | "false"]
android:requiresSmallestWidthDp="integer"
android:compatibleWidthLimitDp="integer"
android:largestWidthLimitDp="integer"/>

包含在:

<mainfest>

描述:

让您指定您的应用支持的屏幕的大小并且可以通过屏幕兼容模式来支持比您应用所支持更大的屏幕。所以这对于您需要在您的应用里面使用这个元素来制定您的应用所支持的屏幕大小是很重要的。

一个应用如果可以合适调整以适应全屏幕的前提下是可以“支持”一个具体的屏幕大小的。系统所应用的正常调整调整对于大多数的应用都适用,所以您也不需要做多余的工作来使您的应用支持比手机设备更大的屏幕。但是,通过提供可选择的布局资源来使您的应用能够对不同屏幕大小的界面进行优化还是很重要。举例来说,您也许需要在平板和手机设备上对activity的布局进行修改。

然而,如果您的应用在调整适应不同屏幕大小的时候出现问题,您可以通过使用<supports-screens>元素的属性来决定您的应用是被发布到小屏幕上面还是可以通过系统的屏幕兼容模式来使应用的界面能够通过缩放(“放大”)来适应更大的屏幕大小。当您没有为大一点的屏幕大小进行设计,并且一般的调整没有达到期望的结果时,屏幕兼容模式将先模拟一个一般中等的屏幕,使您的设计界面先缩小,然后通过放大来填满整个屏幕。但是这样会导致像素变化,您的界面将会变得模糊,所以您最好为您的界面能适应更大的屏幕做好优化工作。

注意:Android 3.2为介绍了一些新的属性:android.requiresSmallestWidthDp,android:compatibleWidthLimitDp和android:largestWidthLimitDp。如果您开发Android 3.2或者更高版本的应用,你最好用这些属性代替基于一般屏幕大小的属性来声明您所支持的屏幕大小。

想要了解更多的关于您的应用如何避免使用屏幕兼容模式就能正确的支持不同屏幕大小的信息,请参见支持多种屏幕

属性:

android:resizeable

决定您的应用是否需要为不同的屏幕大小而进行调整。默认的情况下是true。如果设置为false,系统将会在大屏幕中为您的应用使用屏幕兼容模式进行调整。
这个方法已经过时了。这是用来介绍帮助您的应用在首次介绍支持多屏幕从Android 1.5到Android 1.6的过度。你不需要使用这个属性了。

android:smallScreens

决定您的应用是否支持小屏幕形式因素。一个小屏幕就是指比“正常”(传统的HVGA)长宽比小一点的屏幕。一个不支持小屏幕的应用同样对比从外部服务(例如Google商店)来的小屏幕设备也不适用,因为有很少的平台可以让这样一个应用在小屏幕上工作,所以默认为“true”

android:normalScreens

决定您的应用是否支持“正常”屏幕形式因素。一般来说,这是一个为HVGA密度的屏幕,但是WQVGA低密度和WVGA高密度也可以被当成为普通的。这个属性被默认为是“true”。

android:largeScreens

决定您的应用是否是支持较大一点的屏幕形式因素。一个大屏幕就是指比“正常”(传统的HVGA)长宽比大一点的屏幕,所以需要一些在应用的一部分上面好好的使用它,尽管也可以依靠系统的调整填满整个屏幕。
该默认值在不同的版本中会不一样,所以您最好在需要的时候进行明确的声明。需要注意的是设置该值为“false”就表示自动使用系统屏幕兼容模式

android:xlargeScreens

决定您的应用是否需要超大屏幕形式因素。一个超大屏幕是指比“大”屏幕还要在大一点的屏幕,就像平板(或者更大的),所以需要一些在应用的一部分上面好好的使用它,尽管也可以依靠系统的调整填满整个屏幕。
该默认值在不同的版本中会不一样,所以您最好在需要的时候进行明确的声明。需要注意的是设置该值为“false”就表示自动使用系统屏幕兼容模式
这个属性出现在API level 9。

android:anyDensity

决定您的应用是否包含能够适用于任何屏幕密度的资源。
对于支持Android 1.6(API level 4)或者更高的应用来说,默认值都为“true”并且您不可以设置它为“false”除非您可以绝对肯定在您的应用中这是完全有必要的。唯一有必要阻止它的话就是您需要您的应用直接操纵图片(更多的信息都在支持多种屏幕的文档中)。

android:requiresSmallestWidthDp

指定最小的smallestWidth的值。这个smallestWidth是指屏幕空间(以dip为单位)能偶适用于您的应用界面最短的维度-----也就是最短的可用屏幕的两个维度。所以,为了一个可以和您的应用相兼容的设备,该设备的smallestWidth必须等于或者好于这个值。(通常来说,您提供的这个您布局所支持的“最小宽度”是不管屏幕当前的方向的。)
举例来说,一个典型的手机屏幕smallestWidth的值为320dp,一个7英寸的平板smallestWidth的值为600dp,而一个10英寸的平板smallestWidth的值为720dp。这些值都是一般的smallestWidth的值,因为它们是屏幕可用空间的最短维度。
关于您具体需要选择什么样的大小,那就要把屏幕的装饰以及系统的UI界面都考虑进去进行比较了。例如:如果设备上需要显示一些持续不断地UI元素,系统声明设备smallestWidth值就要比实际的屏幕大小小一点了,因为那些UI元素的pix对您的UI界面不适用。因此,无论当前屏幕的方向,您使用的值必须是您的布局中所要求的最小的宽度。
如果您的应用可以为更小的屏幕大小(下降到小的规模或者最小宽度是320dp)进行正确调整,您就不需要使用这个属性了。否则,您应该为了您的应用,根据最小屏幕宽度介绍(sw<N>dp) 为您的应用设定合适的最小值。

注意:Android系统没有太多内容在这个属性,所以它不会再您的应用运行时有什么影响的。相反,它可以用来将您的应用在那些服务器上例如Google商店过滤出来。但是,Google商店目前还不支持这个属性进行筛选(在Android 3.2),所以您的应用不支持小屏幕的话最好继续使用其它的大小属性。

这个属性出现在API level 13。

android:compatibleWidthLimitDp

这个属性允许您在设计应用时指定最大的“最小屏幕宽度”使屏幕兼容模式作为用户选择的一种功能。如果一个设备可用屏幕最小的一边比您设定的值要小的话,用户仍然可以安装您的应用,但是却被要求在屏幕兼容性能下运行。默认的情况之下,屏幕兼容模式是关着的,并且您的布局像平常一样调整来适应屏幕,但是在系统栏中有一个按钮可以让用户决定屏幕兼容模式是否打开。
如果您的应用兼容所有的屏幕大小,并且您的布局能够正确调整,那么你就不需要使用这个属性。

注意:目前,屏幕兼容模式只有在宽度为320dp的手机下能够模拟成功,所以您的android:compatibleWidthLimitDp值大于320的话,屏幕兼容模式就不能适用。

这个属性出现在API level 13。

android:largestWidthLimitDp

这个属性允许您在设计应用时指定最大的“最小屏幕宽度”并且强制使用屏幕兼容模式。如果一个设备可用屏幕最小的一边比您设定的值要小的话,该应用在以屏幕兼容模式下运行时用户没有办法来停止它。
如果您的应用兼容所有的屏幕大小,并且您的布局能够正确调整,那么你就不需要使用这个属性。否则,您必须首先考虑使用android:compatibleWidthLimitDp这个属性。只有当您的应用程序功能在为更大屏幕调整时被破坏并且屏幕兼容模式是用户操作您的应用唯一的方式时,您可以使用android:largestWidthLimitDp这个属性。

注意:目前,屏幕兼容模式只有在宽度为320dp的手机下能够模拟成功,所以您的android:largestWidthLimitDp值大于320的话,屏幕兼容模式就不能适用。

这个属性出现在API level 13。

<supports-screens>的用法的更多相关文章

  1. EditText 基本用法

    title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...

  2. jquery插件的用法之cookie 插件

    一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...

  3. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  4. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

  5. python enumerate 用法

    A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...

  6. [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...

  7. 【JavaScript】innerHTML、innerText和outerHTML的用法区别

    用法: <div id="test">   <span style="color:red">test1</span> tes ...

  8. chattr用法

    [root@localhost tmp]# umask 0022 一.chattr用法 1.创建空文件attrtest,然后删除,提示无法删除,因为有隐藏文件 [root@localhost tmp] ...

  9. 萌新笔记——vim命令“=”、“d”、“y”的用法(结合光标移动命令,一些场合会非常方便)

    vim有许多命令,网上搜有一堆贴子.文章列举出各种功能的命令. 对于"="."d"."y",我在无意中发现了它们所具有的相同的一些用法,先举 ...

  10. [转]thinkphp 模板显示display和assign的用法

    thinkphp 模板显示display和assign的用法 $this->assign('name',$value); //在 Action 类里面使用 assign 方法对模板变量赋值,无论 ...

随机推荐

  1. TestLink学习四:TestLink1.9.13使用说明

    前言 测试管理工具,是指用工具对软件的整个测试输入.执行过程和测试结果进行管理的过程.可以提高回归测试的效率.大幅提升测试时间.测试质量.用例复用.需求覆盖等. TestLink用于进行测试过程中的管 ...

  2. [km] 如何判断一个直播系统是否使用的是RTMP

    如何判断一个直播系统是否使用的是RTMP from: http://peiqiang.net/2016/03/21/how-to-judge-whether-rtmp-is-used-by-a-liv ...

  3. onmeasure

    UNSPECIFIE : 0 [0x0],未加规定的,表示没有给子view添加任何规定. EXACTLY : 1073741824 [0x40000000],精确的,表示父view为子view确定精确 ...

  4. 【夯实Mysql基础】MySQL在Linux系统下配置文件及日志详解

    本文地址 分享提纲: 1. 概述 2. 详解配置文件 3. 详解日志 1.概述 MySQL配置文件在Windows下叫my.ini,在MySQL的安装根目录下:在Linux下叫my.cnf,该文件位于 ...

  5. C语言 指针与字符串

    C语言可以在栈区 or 堆区 or 全局区 存放字符串,字符串不单单是存储在全局区的. //字符串与指针 #include<stdio.h> #include<stdlib.h> ...

  6. memcached缓存失效时的高并发访问问题解决

    memcached一般用于在访问一些性能相对低下的数据接口时(如数据库),为了保证这些数据接口的稳定性,加上memcached以减少访问次数,保证这些数据接口的健壮性.一般memcached的数据都是 ...

  7. MANIFEST.INF!JAR规范中

    MANIFEST.INF!JAR规范中 META-INF 目录中内容心得.顺带整理了网上资料,提供地址 标签: jarjava产品sunantapache 2012-03-31 17:09 2768人 ...

  8. Androd Studio layout页面布局无法预览

    Could not initialize class android.support.v7.internal.widget.ActionBarOverlayLayout 导致无法看到布局页面,解决方法 ...

  9. PLC梯形图编程练习

    在PLC培训软件中完成如下两个练习,并把对应的梯形图程序发表在博客上. 交通灯控制 在如下图的场景中,打开SW1开关后,交通灯控制器开始工作,关闭SW1则控制器停止工作. SW2为控制模式选择开关: ...

  10. CUDA编程学习(三)

    我们知道一个grid包含多个block,而一个block又包含多个thread,下面将是如何进行下thread中的并行. /**** Splot a block into parallel threa ...