Android开发-API指南-<supports-screens>

<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
参阅:
时间: 2024-10-12 14:03:04

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

Android开发-API指南-&lt;application&gt;

<application> 英文原文:http://developer.android.com/guide/topics/manifest/application-element.html 采集(更新)日期:2014-5-30 更新下老的文档,祝贺下自己 42 岁的生日. 搬迁自原博客:http://blog.sina.com.cn/s/blog_48d491300100zmga.html 语法: <application android:allowTaskReparenting=[&q

Android开发-API指南-&lt;provider&gt;

<provider> 英文原文:http://developer.android.com/guide/topics/manifest/provider-element.html 采集(更新)日期:2014-7-1 搬迁自原博客:http://blog.sina.com.cn/s/blog_48d491300100zmv5.html 语法: <provider android:authorities="list" android:enabled=["true&

Android开发-API指南-&lt;uses-feature&gt;

<uses-feature> 英文原文:http://developer.android.com/guide/topics/manifest/uses-feature-element.html 采集(更新)日期:2014-7-7 搬迁自原博客:http://blog.sina.com.cn/s/blog_48d491300100zmwf.html 在本文中 Google Play 和基于设备特性的过滤机制 基于显式声明的特性需求进行过滤 基于隐含的特性需求进行过滤 对蓝牙特性的特殊处理 对应用

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

Application Fundamentals 英文原文:http://developer.android.com/guide/components/fundamentals.html 采集日期:2014-04-16 搬迁自原博客:http://blog.sina.com.cn/s/blog_48d491300101h41p.html 在本文中 应用程序组件 激活组件 Manifest 文件 声明组件 声明应用程序的需求 应用程序资源 Android 应用程序是用 Java 语言编写的.And

Android开发-API指南-&lt;compatible-screens&gt;

<compatible-screens> 英文原文:http://developer.android.com/guide/topics/manifest/compatible-screens-element.html 采集(更新)日期:2014-6-30 搬迁自原博客:http://blog.sina.com.cn/s/blog_48d491300100zmub.html 语法: <compatible-screens> <screen android:screenSize=

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

Task 和 Back Stack 英文原文: http://developer.android.com/guide/components/tasks-and-back-stack.html 采集(更新)日期:2014-12-16 在本文中 保存 Activity 状态 管理多个 Task 指定启动模式 处理 affinity 清理回退栈k 启动任务 相关文章 Multitasking the Android Way 参阅 Android 设计 : 导航 <activity> manifest

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

Contacts Provider 今年加入了某字幕组,加之杂事颇多,许久未添新文了,惭愧之极. 在听闻 Google 即将重返中国后,近日忽又发现官方网站正在放出 API 中文版,比如本文.当然不是大家所译,但至少句子结构较通顺,窃以为比 MSDN 中文版好些.虽有些生硬(比如将 Provider 译为“提供者”,有趣得紧),但好在前无古人,也许 Google 自此便统一了自己的中文术语也未可知.能让更多的国人精确领悟 Android 的精髓,肯定是好事,希望 Google 继续坚持. 这事应

Android开发-API指南-服务

Service 英文原文:http://developer.android.com/guide/components/services.html 采集(更新)日期:2014-12-23 原博客:http://blog.sina.com.cn/s/blog_48d49130010102pn.html 在本文中 概述 在manifest中声明服务 创建一个started服务 扩展IntentService类 扩展Service类 启动一个服务 终止一个服务 创建一个bound服务 向用户发送通知 在

Android开发-API指南-&lt;service&gt;

<service> 英文原文:http://developer.android.com/guide/topics/manifest/service-element.html 采集(更新)日期:2014-7-2 搬迁自原博客:http://blog.sina.com.cn/s/blog_48d491300100zmva.html 语法: <service android:enabled=["true" | "false"] android:expor

Android开发-API指南-&lt;receiver&gt;

<receiver> 英文原文:http://developer.android.com/guide/topics/manifest/receiver-element.html 采集(更新)日期:2014-7-2 搬迁自原博客:http://blog.sina.com.cn/s/blog_48d491300100zmv7.html 语法: <receiver android:enabled=["true" | "false"] android:ex