标签:
英文原文: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:requiresSmallestWidthDp
、android:compatibleWidthLimitDp
和 android:largestWidthLimitDp
。 如果是为 Android 3.2 以上版本开发应用程序,则应该使用这些属性来声明所支持的屏幕尺寸,而不要再使用那些对屏幕尺寸进行概要性描述的属性。
关于如何支持各种屏幕尺寸、以避免使用屏幕兼容模式的更多信息,请参阅 支持多种屏幕。
android:resizeable
true
。 如果设为否,则在较大屏幕上系统将以 屏幕兼容模式运行应用程序。
本属性已过时。 为了帮助应用程序从 Android 1.5 升级到 1.6 ,才引入了本属性,当时第一次引入了对多种屏幕的支持。 请勿再使用本属性。
android:smallScreens
true
”。android:normalScreens
true
”。android:largeScreens
本属性的默认值依版本而各不相同,因此最好是确保明确声明这个属性。 注意,将本属性设为“false”将总是启用屏幕兼容模式。
android:xlargeScreens
本属性的默认值依版本而各不相同,因此最好是确保明确声明这个属性。 注意,将本属性设为“false”将总是启用屏幕兼容模式。
本属性自 API 级别 9 开始引入。
android:anyDensity
对于支持 Android 1.6 (API 级别 4)以上版本的应用程序而言,本属性的默认值是“true
”。 除非确实确认程序必须要能运行,否则请勿设为“false
”。 只有当应用程序要直接操作位图时(详情参阅文档 支持多种屏幕),才可能需要禁用此属性。
android:requiresSmallestWidthDp
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 也能正常缩放,那就不需要用到本属性。
注意: 目前,屏幕兼容模式只能模拟屏幕宽度为 320dp 的手持设备, 因此当 android:compatibleWidthLimitDp
大于 320 时屏幕兼容模式将不会生效。
本属性自 API 级别 13 引入。
android:largestWidthLimitDp
如果应用程序能兼容所有尺寸的屏幕, Layout 也能够正常缩放,那就不需要用到本属性。 即使不行,也应优先考虑使用 android:compatibleWidthLimitDp
属性。 仅当缩放到大屏幕时应用程序会崩溃,且屏幕兼容模式是用户唯一可用的方式时,才会用到 android:largestWidthLimitDp
属性。
注意: 目前,屏幕兼容模式只能模拟屏幕宽度为 320dp 的手持设备, 因此当 android:largestWidthLimitDp
大于 320 时屏幕兼容模式将不会生效。
本属性自 API 级别 13 开始引入。
Android开发-API指南-<supports-screens>
标签:
原文地址:http://www.cnblogs.com/popapa/p/android_supports-screens-element.html