<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. iOS应用软件沙盒sandbox相关知识(整理)

    1.iOS沙盒机制原理 iOS应用程序只能在该程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. ...

  2. EF Core怎么只Update实体的部分列数据

    下面是EF Core中的一个Person实体: public partial class Person { public int Id { get; set; } public string Code ...

  3. hdu_4336_Card Collector

    In your childhood, do you crazy for collecting the beautiful cards in the snacks? They said that, fo ...

  4. .Net core 使用Jenkins + Docker + Azure Devops 傻瓜式部署

    这几天一直在搞 Jenkins + Docker + Azure Devops 部署,因为这种方式部署真的非常的省心,而且速度快,方便快捷,等等无数优点,感谢我的单身领导的支持,当然也感谢 晓晨大神, ...

  5. 日期格式操作,在oracle和mysql中的实现

    oracle add_months(日期格式值 , 整数n)  当整数n=12时,代表一年,向后推迟一年,若n=-12代表回退一年 如 to_char(add_months(to_date('2018 ...

  6. shell定时统计Nginx下access.log的PV并发送给API保存到数据库

    1,统计PV和IP 统计当天的PV(Page View) cat access.log | sed -n /`date "+%d\/%b\/%Y"`/p |wc -l 统计某一天的 ...

  7. Hibernate 事务不回滚

    问题:               这几天在做开发时,发现事务不回滚了,Service是用AOP加的事务,数据库是MySql, 表全部是InnoDB:   方法回滚是采用spring的手动回滚:   ...

  8. TinyMCE插件:Filemanager [4.x-6.x] 文件名统一格式化

    上传图片程序(filemanager/upload.php) 在if (!empty($_FILES) && $upload_files)中上传图片时,在文件正式上传至服务器前,有一次 ...

  9. Macbook下安装memcached

    参考文献: https://blog.csdn.net/weixin_41827162/article/details/82049520 感谢大佬 安装memcached需要Homebrew 注意点: ...

  10. hive 学习系列六 hive 去重办法的思考

    方法1,建立临时表,利用hive的collect_set 进行去重. create table if not exists tubutest ( name1 string, name2 string ...