<supports-screens>

版本:Android 3.2

语法:

<supports-screensandroid: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"/>

包含于:

<manifest>

说明:

指定应用程序支持的屏幕尺寸,并对大于程序支持的屏幕启用屏幕兼容模式。总是用本元素来指定程序支持的屏幕尺寸是非常重要的。

所谓应用程序“支持”的屏幕尺寸,是指程序能够自动缩放来填充整个屏幕。通常系统提供的缩放功能可以适用于大多数应用程序,不必做什么额外的调整工作就能让程序在屏幕更大的手持设备上正常运行。但是常常要利用替代布局资源来优化用户界面以适应各种屏幕尺寸。比如,为了区别在平板设备和手持设备上的运行,可能需要修改activity的布局。

然而,如果程序为适应不同的屏幕尺寸进行缩放后不能正常运行,可以利用<supports-screens>元素的属性进行限制,使得程序只能在小屏幕上运行,或使用系统的屏幕兼容模式来缩放用户界面以适应较大的屏幕。如果没有考虑大屏幕的设计并且正常的缩放不能获得理想的结果,屏幕兼容模式将会通过仿真正常尺寸的屏幕和中等屏幕密度来确定用户界面的缩放比例,然后进行缩放来填充整个屏幕。注意这会导致用户界面的像素化和模糊,因此最好是为大屏幕对用户界面进行优化。

注意:自Android 3.2引入了新的属性:android:requiresSmallestWidthDp、android:compatibleWidthLimitDp和android:largestWidthLimitDp。如果是开发Android 3.2以上版本的应用程序,应该使用这些属性来声明对屏幕尺寸的支持,而不是用基于普通屏幕尺寸的属性。

关于支持各种屏幕尺寸、避免使用屏幕兼容模式的详情,请参阅支持多种屏幕

属性:

android:resizeable

指明应用程序是否根据不同的屏幕尺寸进行缩放。如果设为否,则在较大屏幕上系统将以屏幕兼容模式运行应用程序。

本属性已过时。为了帮助程序从Android 1.5升级为1.6才引入本属性,当时第一次引入了对多种屏幕的支持。不应再使用本属性。

android:smallScreens

指明应用程序是否支持较小屏幕。较小的屏幕是指小于“normal”(传统的HVGA)大小的屏幕。不支持小屏幕的应用程序将在外部服务(比如Android Market)中禁止用于小屏幕设备,因为只有很少一部分平台能让程序运行在小屏幕上。缺省值是“true”。

android:normalScreens

指明应用程序是否支持“normal”屏幕尺寸。传统意义上指的是中等密度的HVGA 屏幕,但低密度的WQVGA和高密度的WVGA一般也被视为是正常尺寸。缺省属性是“true”。

android:largeScreens

指明应用程序是否支持大屏幕尺寸。大屏幕是指明显比“normal”手持设备屏幕更大的尺寸。虽然依赖于系统的缩放也能全屏显示,但为了更好的用户体验可能需要对程序组件进行特定的处理。

本属性的缺省值依版本而各不相同,因此最好是一直都明确声明这个属性。注意设为“false”将总是启用屏幕兼容模式

android:xlargeScreens

指明应用程序是否支持超大屏幕尺寸。超大屏幕是指明显比“large”屏幕更大的尺寸,比如平板设备(或更大),虽然依赖于系统的缩放也能全屏显示,但为了更好的用户体验可能需要对程序组件进行特定的处理。

本属性的缺省值依版本而各不相同,因此最好是一直都明确声明这个属性。注意设为“false”将总是启用屏幕兼容模式

本属性自API level 9引入。

android:anyDensity

指明应用程序是否包含适用于任何屏幕密度的资源。

对于支持Android 1.6 (API level 4)以上版本的应用程序而言,本属性缺省值是“true”。除非绝对确认程序必须要能运行,不应设为“false”。只有应用程序要直接操作位图时(详情参阅支持多种屏幕文档),才可能需要禁用此选项。

android:requiresSmallestWidthDp

指定程序所需的smallestWidth最小值。smallestWidth是指可被程序用户界面使用的屏幕可用空间的最小值(单位为dp)——指可用屏幕两边中最短的那条边长。为了保证与应用程序兼容,设备的smallestWidth必须大于等于本属性值。(通常此值对应于布局layout所支持的“最小宽度”,而与屏幕当前的方向无关。)

例如,典型的手持设备的最小宽度是320dp,7英寸的平板设备的最小宽度是600dp,10英寸的平板设备的最小宽度是720dp。因为这些值即为屏幕可用空间的最小值,所以一般也即是smallestWidth的值。

在计算屏幕上的组件排列和系统用户界面大小时会与本属性值进行比较。例如,如果设备屏幕上需要显示一些永久性的用户界面元素,这些元素占用的屏幕位置对于其它用户界面元素是不可用的,通过对这些元素尺寸进行计算,系统声明的设备smallestWidth会比实际屏幕尺寸要小些。因此,应该用layout所需的最小宽度来设置此值,而与屏幕的方向无关。

如果应用程序能在小屏幕上正确缩放(最低是small尺寸或最小宽度320dp),那就不需要用到本属性。否则,就应该为最小屏幕宽度标识符设置本属性来匹配应用程序所需的最小尺寸。

警告:Android系统并不关心本属性,因此它不会影响程序运行时的表现。它是用于为诸如Android Market之类的服务启用过滤功能。不过,Android Market 当前还不支持对这个属性的过滤(Android 3.2),因此如程序不支持小屏幕的话还应继续使用其它屏幕尺寸的属性来进行限制。

本属性自API level 13引入。

android:compatibleWidthLimitDp

通过指定程序支持的“最小屏幕宽度”的最大值,本属性可启用屏幕兼容模式作为用户可选项。如果设备可用屏幕的最小边长大于在此设置的值,用户将仍可以安装程序,但会运行在屏幕兼容模式。缺省情况下,屏幕兼容模式将被关闭,layout将如常缩放至全屏显示,但系统状态栏中会出现一个按钮,用户可以用此按钮来开关屏幕兼容模式。

如果应用程序能兼容所有的屏幕尺寸,layout也能正确缩放,那就不需要用到本属性。

注意:目前屏幕兼容模式只能在手持设备上仿真320dp宽度的屏幕,因此android:compatibleWidthLimitDp大于320时屏幕兼容模式将不会生效。

本属性自API level 13引入。

android:largestWidthLimitDp

通过指定程序支持的“最小屏幕宽度”的最大值,本属性可强制开启屏幕兼容模式。如果设备屏幕的最小边长大于本属性值,应用程序将运行在屏幕兼容模式,且用户无法将其关闭。

如果应用程序能兼容所有的屏幕尺寸,layout也能正确缩放,那就不需要用到本属性。不然也应优先考虑使用android:compatibleWidthLimitDp属性。仅当应用程序缩放到大屏幕时会崩溃,屏幕兼容模式是用户使用的唯一方式,才会用到android:largestWidthLimitDp属性。

注意:目前屏幕兼容模式只能在手持设备上仿真320dp宽度的屏幕,因此android:largestWidthLimitDp大于320时屏幕兼容模式将不会生效。

本属性自API level 13引入。

转 Android开发者指南-Manifest.xml-<supports-screens的更多相关文章

  1. Android开发者指南-方位传感器-Position Sensor

    Android开发者指南-方位传感器-Position Sensor 转载自:http://blog.sina.com.cn/s/blog_48d4913001010zsu.html Position ...

  2. Android开发者指南(9) —— ProGuard

    转: 前言 本章内容为开发者指南(Dev Guide)/Developing/Tools/ProGuard,本章内容为"混淆器",版本为Android3.0 r1,翻译来自:&qu ...

  3. 英特尔 Android* 开发者指南上的对等应用

    简单介绍 当没有 Wi-Fi 訪问点或互联网訪问时,Android* 应用可能须要对等连接在两台或多台 Android* 设备之间建立连接. 比方,文件共享应用和多人游戏. 该功能可使用 NFC.蓝牙 ...

  4. Android开发者指南-用户界面-拖放-Drag and Drop[原创译文]

      英文原文:http://developer.android.com/guide/topics/ui/drag-drop.html 版本:Android 4.0 r1 译者注:黄色底色为未决译文 快 ...

  5. android之IntentFilter的用法_Intent.ACTION_TIME_TICK在manifest.xml不起作用

    在模仿一个天气预报的widget时候,用到了IntentFilter,感觉在manifest.xml注册的receiver跟用代码写registerReceiver()的效果应该是相同的,于是想证明一 ...

  6. 开源Android容器化框架Atlas开发者指南

    Atlas是古希腊神话中的天神,是波士顿动力公司的机器人,借助搜索引擎,得以发现这个名词背后许许多多的含义.在手机淘宝,Atlas是一个扎根于Android客户端的一个组件化容器框架,相比神话中用手和 ...

  7. Android 开发者文档 -- 应用基础知识

    https://developer.android.com/guide/components/fundamentals 应用基础知识 Android 应用采用 Java 编程语言编写.Android ...

  8. Android开发者必备的42个链接

    http://mobile.51cto.com/ahot-426035.htm Android开发者必备的42个链接 下面收集了42个帮助大家学习Android的内容链接,部分内容是面向初学者的,帮助 ...

  9. Android开发者资源大汇总

    本文总结了最新的Android开发资源.下面列出的资源都是常用的,每个Android程序员都应该知道,能大大方便App开发.Enjoy~ 来源:Android开发周刊 中文的Android开发信息,资 ...

随机推荐

  1. svn地址如何更改

    1.先进入平时放的更新文件的位置 2.然后右键 选中TortoiseSVN中的Relocate修改里面的完了之后输入账号和密码就好了当然你要记得密码和账号

  2. position:fixed 居中问题

    设置Css属性position:fixed后如何使这个盒子居中呢?其实也很简单: 就是需要设置给这个div盒子设置属性: left:0; right:0; margin:0 auto; ******* ...

  3. scanf函数与scanf_s函数

    ANSI C中没有scanf_s(),只有scanf(),scanf()在读取时不检查边界,所以可能会造成内存泄露.所以vc++2005/2008中提供了scanf_s(),在最新的VS2013中也提 ...

  4. mysql常用命令使用技巧

    一.连接Mysql格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root - ...

  5. 推荐两个界面原型设计工具--GUIDesignStudio 和 Mockups For Desktop

    前段时间,有幸参加一次高级软件架构师的培训,授课老师介绍了两个很好玩的界面原型设计工具:GUIDesignStudio 和 Mockups For Desktop,现分享一下,截图说明,洗洗眼球,权当 ...

  6. view视图--display中echo出ob_get_contents的缓冲内容--(实现,拼接好文件--导入文件)

    view.php01默认设置有3个公共的属性,其他属性.后面实例化的时候.通过传递参数.foreach遍历,不断的增加属性02view对象的实例化.位置在-->控制器父类的构造方法中视图的目录名 ...

  7. Java 环境搭建的一些问题

    1.http://www.eclipse.org/webtools/  eclipse 官网,SE.EE方向是两个不同eclipse 2.tomcat 对eclipse来说是一个插件,需要额外下载 T ...

  8. restlet上传图片代码

    客户端用的是 jquery file upload, 服务器端用的是restlet package org.soachina.rest.component.resource; import java. ...

  9. jsp 页面取值

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  10. 笨方法学python--安装和准备

    1 下载并安装python http://python.org/download 下载python2.7. python2.7并不是python3.5的旧版本. python2现在应用较广,网上资料较 ...