<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. Jenkins学习一:Jenkins是什么?

    文章转载:http://www.cnblogs.com/zz0412/tag/jenkins/default.html?page=1 第一章 Jenkins是什么? Jenkins 是一个可扩展的持续 ...

  2. JAVA NIO概述(一):I/O模型

    NIO是jdk1.4加入的新功能,我们一般成为非阻塞IO,在1.4之前,JAVA中的都是BIO(堵塞IO),BIO有以下几个缺点: 没有数据缓冲区,I/O性能存在问题 没有C/C++中channel( ...

  3. View (二) 自定义属性

    主要有三种方法可以实现自定义属性. 方法一:不使用命名空间,不使用attrs.xml文件.通过attrs.getAttributeResourceValue方法拿到属性值 方法二: 使用命名空间, 不 ...

  4. ArcGis实现添加MultiLayerMarkerSymbol(多个符号叠加生成新的符号)

    , , );             pMarkerSymbol.Angle = ;             pMarkerSymbol.XOffset = ;;;;, , );            ...

  5. ndk开发教程以及问题解决方案

    一.NDK产生的背景 Android平台从诞生起,就已经支持C.C++开发.众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语 ...

  6. 【WPF】Winform调用WPF窗体注意事项

     1.需要添加一些引用 2.调用处使用如下方法进行调用 Window win= new Window(); ElementHost.EnableModelessKeyboardInterop(win) ...

  7. DWZ集成的xhEditor编辑器浏览本地图片上传的设置

    有关xhEditor的文件上传配置官方文档链接:http://i.hdu.edu.cn/dcp/dcp/comm/xheditor/demos/demo08.html 一.xhEditor图片上传的配 ...

  8. 加密算法使用(三):用用BASE64

    采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到 package testEncrypt; import java.security.Key; import java.secu ...

  9. 一个按钮,如果5分钟内点击再次点击给予提示操作频繁,在JS里可以这样写

    很简单. 但是,如果你要离开这个页面再进来, 就没办法限制了. 除非用cookie 储存状态 给个示例 var isLock = flase; //定义全局变量 按钮点击事件: if(isLock){ ...

  10. JS案例之8——从一个数组中随机取数

    近期项目中遇到一个需求,从一个列表中随机展示列表的部分内容,需求不大,JS也非常容易实现.主要是运用到了Math对象的random方法,和Array的splice方法. 思路是先新建一个数组,存放所有 ...