<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. 第28章 LTDC—液晶显示中英文

    本章参考资料:<STM32F76xxx参考手册>.<STM32F7xx规格书>.库帮助文档<STM32F779xx_User_Manual.chm>. 关于开发板配 ...

  2. jquery遍历数组

    示例: ajax返回的数组进行遍历 $.ajax({ type:"POST", url:"<?php echo base_url(); ?>public_re ...

  3. windows安装的mysql中文乱码的坑

    本机装的mysql为5.6的,从代码执行的中文inert语句总是显示问号,然后在中文查询是都会报问题 今天终于解决了! 问题解决方法为: 找到my.ini文件在文件中加入 [client]defaul ...

  4. Android 中Dialog的使用

    本文是参考ProAndroid的第10章Working with Dialogs的内容,在合适的地方添加了作者自己的一些见解最终成文. Android 中的对话框是一个展示在当前窗口上的小一号的窗口, ...

  5. 查询sqlserver 表结构呀

    SQL Server里查询表结构命令 对于SQL Server数据库有两种方法查询表结构 第一种方法 sp_help Accounts_Users     其中Accounts_Users 表示表名 ...

  6. 关于c++随机种子srand( time(NULL) )的设置问题

    设置随机种子srand( time(NULL) ) ,在程序中只需要设置一次就好,而且不能被调用多次,直接看列子. a:每次都重新设置随机种子 #include<iostream> #in ...

  7. IDEA中使用单元测试@Test等,提示没有 Junit.jar包

    1.File-->Project Structure-->Modules-->右侧Dependencies-->+号-->JARs or directories... 2 ...

  8. JavaScript手绘风格的图形库RoughJS使用指南

    RoughJS是一个轻量级的JavaScript图形库(压缩后约9KB),可以让你在网页上绘制素描风格.手绘样式般的图形.RoughJS定义了绘制直线,曲线,圆弧,多边形,圆和椭圆的图元,同时它还支持 ...

  9. php http_build_query stream_context_create post请求

    <?php function send_post($url, $post_data) { $postdata = http_build_query($post_data); $options = ...

  10. Java 反射 (Class、ClassLoader、Constructor、Method、Field)

    反射是Java中一个非常重要.非常强大的机制.曾看到一句话“反射是框架的灵魂”,初学时不懂,等到学完框架之后才慢慢理解其意. 什么是反射?我们先通过几个类和示例来初步体会一下反射. 一.ClassLo ...