<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. Codeforces 234D Cinema

    这题做的我好苦啊,编码调试整整搞了一个多小时,而且调到天昏地暗才调出来.. 回归正题,这题是一道本人做过的比较烦,比较无聊的题之一.题意是一个人,在m个影星里有k个喜欢的影星,然后给出n场电影,每场电 ...

  2. 关于jQuery的一些实用代码

    (1)修改默认编码:(将默认的utf-8,修改为GB2312) $.ajaxSetup({ ajaxSettings:{contentType:"application/x-www-from ...

  3. ios app架构设计系统文章

    三. iOS应用架构谈(三):网络层设计方案(上) http://www.infoq.com/cn/articles/ios-app-arch-3-1?utm_source=infoq&utm ...

  4. tp空操作和空控制器处理

    TP框架几个重要文件:index.php,ThinkPHP.php,Library/Think/Think.class.php,Library/Think/App.class.php,conversi ...

  5. Android studio导入eclipse项目混淆打包出错

    将proguard-android.txt复制一份重命名成proguard-rules.pro,且在build.gradle添加 release {             minifyEnabled ...

  6. [转]PHP 获取服务器详细信息代码

    转自:http://jingyan.baidu.com/article/fdbd4277049c8bb89e3f4893.html 获取系统类型及版本号: php_uname() (例:Windows ...

  7. Linux 进程与线程三(线程比较--创建线程参数)

    int pthread_equal(pthread_t th1,pthread_t th2); pthread_equal函数比较th1与th2是否为同一线程,由于不可以讲pthread_t数据类型认 ...

  8. C语言错误: HEAP CORRUPTION DETECTED

    程序源代码: //写文件两种方式(文本文件和二进制文件) #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<std ...

  9. Linux下目录的合并以及文件的覆盖

    有两个目录test和new,test目录下有目录和文件,new目录下有更改过的一些test下的目录和文件,以及一些新增的文件,现在对两个目录进行合并以及覆盖test下的旧文件. cp -frap ne ...

  10. [CareerCup] 7.5 A Line Cut Two Squares in Half 平均分割两个正方形的直线

    7.5 Given two squares on a two-dimensional plane, find a line that would cut these two squares in ha ...