<supports-screens>

英文原文:http://developer.android.com/guide/topics/manifest/supports-screens-element.html
采集(更新)日期:2014-7-3
搬迁自原博客:http://blog.sina.com.cn/s/blog_48d491300100zmvk.html

语法:
<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"/>
包含于:
<manifest>
说明:
定义应用程序支持的屏幕尺寸,并针对更大的屏幕启用 屏幕兼容模式。 请确保用本元素来指定应用程序支持的屏幕尺寸,这是非常重要的。

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

然而,如果针对不同的屏幕尺寸进行自动调整后,应用程序还是不能正常运行,那么就可以利用 <supports-screens> 元素内的各个属性来进行限制,使得程序只能在小屏幕上运行,或者通过系统的 屏幕兼容模式 缩放用户界面来适应较大的屏幕。 如果没有针对较大屏幕进行专门的设计,并且常用的自动调整尺寸功能也不能获得理想的效果, 屏幕兼容模式将会通过模拟 normal 尺寸的屏幕和 medium 屏幕密度来确定用户界面的缩放比例,然后进行缩放来填充整个屏幕。 注意这会导致用户界面的像素化和模糊化,因此最好还是针对大屏幕定制优化的用户界面。

注意: 自 Android 3.2 开始引入了新的属性:android:requiresSmallestWidthDpandroid:compatibleWidthLimitDpandroid:largestWidthLimitDp。 如果是为 Android 3.2 以上版本开发应用程序,则应该使用这些属性来声明所支持的屏幕尺寸,而不要再使用那些对屏幕尺寸进行概要性描述的属性。

关于如何支持各种屏幕尺寸、以避免使用屏幕兼容模式的更多信息,请参阅 支持多种屏幕

属性:
android:resizeable
指明应用程序是否根据不同的屏幕尺寸改变大小。 默认值是 true。 如果设为否,则在较大屏幕上系统将以 屏幕兼容模式运行应用程序。

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

android:smallScreens
指明应用程序是否支持 small 尺寸的屏幕。 small 尺寸的屏幕定义为小于“normal”(传统的HVGA)尺寸的屏幕。 不支持 small 屏幕的应用程序将在外部服务(比如 Google Play )中禁止用于小屏幕设备,因为只有很少一部分平台能让程序运行在小屏幕上。 默认值是“true”。
android:normalScreens
指明应用程序是否支持“normal”尺寸的屏幕。 传统意义上这指的是中等密度的 HVGA 屏幕,但低密度的 WQVGA 和高密度的 WVGA 一般也被视为是 normal 尺寸。 默认属性是“true”。
android:largeScreens
指明应用程序是否支持 larger 尺寸的屏幕。 large 屏幕是指明显比“normal”手持设备更大的屏幕。 虽然依靠系统的改变尺寸功能也能实现全屏显示,但为了充分利用屏幕的空间,可能还是需要对应用程序进行特殊的设计。

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

android:xlargeScreens
指明应用程序是否支持 xlarge 尺寸的屏幕。 xlarge 屏幕定义为明显比“large”尺寸更大的屏幕,比如平板电脑(或更大的设备)。 虽然依靠系统的改变尺寸功能也能实现全屏显示,但为了充分利用屏幕的空间,可能还是需要对应用程序进行特殊的设计。

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

本属性自 API 级别 9 开始引入。

android:anyDensity
指明应用程序是否包含适应所有屏幕密度的资源。

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

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

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

当排列屏幕布局和系统用户界面时会与本属性值进行比较。 例如,如果设备的屏幕上存在一些永久性的用户界面元素,因为这些元素的屏幕空间不再可用, 则经过对这些元素尺寸进行计算后,系统声明的设备 smallestWidth 会小于实际的屏幕尺寸。 因此,请用程序布局需要的最小宽度来设置此值,并与屏幕的方向无关。

如果应用程序能够在小屏幕上(至少是 small 尺寸或 320dp 宽度)正确地改变大小,那就不需要用到本属性。 否则,就应该用 最小屏幕宽度标识符 (sw <N> dp) 将本属性设置为符合程序需求的最小尺寸。

提醒: Android 系统并不关心本属性,因此它不会影响程序运行时的表现。 它是为 Google Play 之类的服务启用过滤机制而服务的。 不过,Google Play 目前还不支持对本属性的过滤(Android 3.2), 因此如果应用程序不支持小屏幕的话,还请继续使用其他的屏幕尺寸属性。

本属性自 API 级别 13 开始引入。

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

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

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

本属性自 API 级别 13 引入。

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

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

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

本属性自 API 级别 13 开始引入。

引入自:
API 级别 4
参阅:

Android开发-API指南-<supports-screens>的更多相关文章

  1. Android开发-API指南-<permission>

    <permission> 英文原文:http://developer.android.com/guide/topics/manifest/permission-element.html 采 ...

  2. Android开发-API指南-<provider>

    <provider> 英文原文:http://developer.android.com/guide/topics/manifest/provider-element.html 采集(更新 ...

  3. Android开发-API指南-应用程序开发基础

    Application Fundamentals 英文原文:http://developer.android.com/guide/components/fundamentals.html 采集(更新) ...

  4. Android开发-API指南-Intent和Intent过滤器

    Intents and Intent Filters 英文原文:http://developer.android.com/guide/components/intents-filters.html 采 ...

  5. Android开发-API指南-Android简介

    Introduction to Android 英文原文:http://developer.android.com/intl/zh-cn/guide/index.html 采集日期:2014-4-16 ...

  6. Android开发-API指南-设备兼容性

    Device Compatibility 英文原文:http://developer.android.com/guide/practices/compatibility.html 采集日期:2014- ...

  7. Android开发-API指南-任务和回退栈

    Task and Back Stack 英文原文: http://developer.android.com/guide/components/tasks-and-back-stack.html 采集 ...

  8. 【最后一篇API译文】Android开发-API指南- Contacts Provider

    Contacts Provider 今年加入了某字幕组,加之杂事颇多,许久未添新文了,惭愧之极. 在听闻 Google 即将重返中国后,近日忽又发现官方网站正在放出 API 中文版,比如本文.当然不是 ...

  9. Android开发-API指南-创建 Content Provider

    Creating a Content Provider 英文原文:http://developer.android.com/guide/topics/providers/content-provide ...

  10. Android开发-API指南-Content Provider基础

    Content Provider Basics 英文原文:http://developer.android.com/guide/topics/providers/content-provider-ba ...

随机推荐

  1. http1.X与2.0

    HTTP HTTP 1.X HTTP是建立在TCP协议上的,HTTP协议的瓶颈及优化都是基于TCP协议本身的特性. TCP建立连接时有三次握手 会有1.5RTT的延迟,为了避免每次请求都经历握手待来的 ...

  2. es6 Proxy对象详解

    Proxy用于修改某些操作的默认行为,也可以理解为在目标对象之前架设一层拦截,外部所有的访问都必须先通过这层拦截,因此提供了一种机制,可以对外部的访问进行过滤和修改.这个词的原理为代理,在这里可以表示 ...

  3. 关于instanceof的使用

    测试单独一个类: <?php class A { } $a = new A(); if($a instanceof A){ echo "对象\$a实现了A类"; } 当一个子 ...

  4. 大专生自学web前端到找到工作的前前后后

    先做个自我介绍,我13年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了.13年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学 ...

  5. Hadoop-Hive学习笔记(2)

    1.Hive基本操作 #创建数据库hive>create database name;#创建新表hive> create table students(id int,name string ...

  6. Java学习笔记十八:Java面向对象的三大特性之封装

    Java面向对象的三大特性之封装 一:面向对象的三大特性: 封装 继承 多态   二:封装的概念: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访 ...

  7. cannot import name '_imaging' 报错

    例子如下: from PIL import Image import pytesseract as pt text = pt.image_to_string(Image.open("text ...

  8. Uber优步北京第一组奖励政策

    优步北京第一组: 定义为2015年6月1日凌晨前(不含6月1日)激活的司机(以优步后台数据显示为准) 滴滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机 ...

  9. 北京Uber优步司机奖励政策(2月25日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  10. 重庆Uber优步司机奖励政策

    获得任何奖励的前提条件:当周接单率80%以上,当周乘客评分4.5分以上,且无刷单等欺诈行为. 滴滴快车单单2.5倍,注册地址:http://www.udache.com/如何注册Uber司机(全国版最 ...