当前位置: 代码迷 >> Android >> Android API Guides-App Manifest <supports-screens> <uses-configuration>
  详细解决方案

Android API Guides-App Manifest <supports-screens> <uses-configuration>

热度:565   发布时间:2016-04-24 11:07:34.0
Android API Guides---App Manifest <supports-screens> <uses-configuration>

<supports-screens>

句法

<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>

描述:
让您指定屏幕尺寸您的应用程序的支持,使屏幕兼容模式比应用程序支持什么更大的屏幕。你总是使用这个元素在应用程序中指定屏幕尺寸您的应用程序的支持是很重要的。
应用程序“支持”如果给定的屏幕尺寸调整大小适当地填满整个屏幕。该系统应用正常调整大小适用于大多数应用程序,你不必做任何额外的工作,使比手机设备更大的屏幕应用程序的工作。但是,您通过提供替代布局资源优化应用程序对不同屏幕尺寸的用户界面往往很重要。例如,您可能需要修改活动的布局时,它是在平板电脑相比,手机设备上运行时。
但是,如果调整??大小以适应不同的屏幕尺寸,当应用程序无法正常工作,您可以使用<支持屏>的属性元素来控制应用程序是否应分发给更小的屏幕还是有它的UI放大(“放大“),以适应使用系统的屏幕兼容模式更大的屏幕。当你已经不适合更大的屏幕尺寸和正常调整大小并没有达到相应的效果,屏幕兼容模式将通过模拟一个正常大小的屏幕和中密度,然后放大,使其充满整个屏幕缩放你的用户界面。要注意的是这会导致像素化和UI的模糊,因此,如果您优化的用户界面为大屏幕它的更好。
注:Android 3.2的推出新的属性:机器人:requiresSmallestWidthDp,安卓compatibleWidthLimitDp,和android:largestWidthLimitDp。如果你正在开发Android 3.2和更高版本应用程序,你应该使用这些属性来声明屏幕尺寸的支持,而不是基于广义屏幕大小的属性。
有关如何正确地支持不同的屏幕尺寸,这样就可以尽量避免使用屏幕兼容模式与应用程序的更多信息,请阅读支持多种屏幕。
属性:

android:resizeable

指示应用程序是否是可调整大小不同的屏幕大小。此属性是真实的,默认情况下。如果设置为false,系统将在大屏幕上运行屏幕兼容模式应用程序。
此属性已被弃用。据介绍,以帮助应用过渡,从Android 1.5的到1.6时,首次引入了多屏幕的支持。你不应该使用它。

android:smallScreens

指示应用程序是否支持屏幕较小的外形尺寸。一个小的屏幕被定义为一个具有较小纵横比“正常”(传统的HVGA)屏幕。不支持小屏幕的应用程序将无法使用从外部服务小屏幕设备(如谷歌播放),因为很少有这个平台可以做,使一个小屏幕上这样一个应用程序的工作。这是“真”默认。

android:normalScreens

指示应用程序是否支持“正常”屏幕的外形尺寸。传统上,这是一HVGA介质密度的屏幕,但WVGA低密度和WVGA高密度也被认为是正常的。该属性是“真”默认。

android:largeScreens

指示应用程序是否支持更大的屏幕形式因素。大屏幕被定义为一个屏幕,是不是一个“正常”的手机屏幕显著较大,因此可能需要对应用程序的一部分,一些特殊的照顾好好利用它,虽然它可能依赖于系统调整,以填补 屏幕。
它的默认值实际上一些版本之间变化,所以它的更好,如果你明确地在任何时候宣布这个属性。若设置为“假”一般会启用屏幕兼容模式。

android:xlargeScreens

指示应用程序是否支持超大屏幕的外形尺寸。一个XLARGE屏幕被定义为屏幕,比“大”屏幕显著较大,如片剂(或更大的东西),并可能需要对应用程序的一部分,特别注意利用好它,虽然它可能依靠调整该系统填补了屏幕。
它的默认值实际上一些版本之间变化,所以它的更好,如果你明确地在任何时候宣布这个属性。若设置为“假”一般会启用屏幕兼容模式。
此属性是在API级9出台。

android:anyDensity

指示应用程序是否包括资源,以适应任何屏幕像素密度。
对于支持的Android1.6(API等级4)和更高的应用程序,这是在默认情况下“真”,你不应该设置“假”,除非你是绝对肯定的是,有必要为您的应用工作。它可能是唯一需要时间来关闭是,如果你的应用程序直接操纵位图(更多信息,支持多种屏幕的文档)

android:requiresSmallestWidthDp

指定所需的最小最小的宽度。最小的宽度是,必须提供给您的应用程序的用户界面,也就是说,最短可用屏幕的两个维度的屏幕空间的最短尺寸(以dp为单位)。因此,为了使设备被认为与应用程序兼容,该设备的smallestWidth必须大于该值等于或更大。 (通常情况下,您为这个值就是“最小宽度”,你的布局支持,无论画面的当前方向。)
例如,一个典型的手机屏幕上有一个最小宽度的320dp,7“平板电脑有一个600dp的最小宽度和10”平板电脑有一个720dp最小宽度。这些值通常是最小宽度,因为它们是在屏幕的可用空间的最短尺寸。
这对你的价值进行比较的大小会考虑到屏幕装饰和系统界面。例如,如果该装置具有在显示器上一些持久UI元素,则系统会声明设备的smallestWidth为一个比实际屏幕尺寸小,占这些UI元素,因为这些是可提供的UI画面的像素。因此,您使用的值应该是布局所需的最小宽度,无论画面的当前方向。
如果你的应用程序中正确调整大小较小的屏幕尺寸(下到小尺寸或320dp的最小宽度),你并不需要使用这个属性。否则,你应该为这个属性相匹配的最小屏幕宽度预选赛(SW <N> DP)使用你的应用程序中的最小值使用的值。
注意:Android系统并没有注意这个属性,因此它不会影响你的应用程序的行为在运行时。相反,它是用来启用过滤为您的服务,如谷歌Play应用程序。不过,目前谷歌播放不支持过滤这个属性(在Android 3.2),所以你应该继续使用,如果你的应用程序不支持小屏幕的大小等属性。
这个属性在API级别13引入的。

android:compatibleWidthLimitDp

该属性允许您通过指定您的应用程序设计的最大“最小屏幕宽度”来启用屏幕兼容模式为用户可选功能。如果设备的可用屏幕的最小边比这里你的价值越大,用户仍然可以安装应用程序,但提供给屏幕兼容模式下运行它。默认情况下,屏幕兼容模式被禁止,你的布局调整大小以适应屏幕像往常一样,但一个按钮在系统栏,使用户可以打开和关闭屏幕兼容模式下可用。
如果您的应用程序与所有的屏幕尺寸兼容,其布局调整大小正确,你不需要使用这个属性。
注意:目前,屏幕兼容模式只模拟手机屏幕有320dp宽度,屏幕兼容模式,如果你的Android的值不应用于:兼容宽度限制p比320大。
这个属性在API级别13引入的。

android:largestWidthLimitDp

此属性允许通过指定您的应用程序设计的最大“最小屏幕宽度”,可以强制启用屏幕兼容模式。如果设备的可用屏幕的最小侧比你更大的价值在这里,应用程序屏幕兼容模式运行,没有办法为用户禁用它。
如果您的应用程序与所有的屏幕尺寸兼容,其布局调整大小正确,你不需要使用这个属性。否则,你应该首先考虑使用了android:兼容宽度的限制属性。你应该使用android:largestWidthLimitDp属性,只有当调整为更大的屏幕和屏幕兼容模式时,用户应该使用你的应用程序的唯一方法您的应用程序在功能上打破。
注意:目前,屏幕兼容模式只模拟手机屏幕有320dp宽度,因此,如果您为Android值不应用于屏幕兼容模式:largestWidthLimitDp比320大。
这个属性在API级别13引入的。

<uses-configuration>

句法

<uses-configuration  android:reqFiveWayNav=["true" | "false"android:reqHardKeyboard=["true" | "false"android:reqKeyboardType=["undefined" | "nokeys" | "qwerty" | "twelvekey"android:reqNavigation=["undefined" | "nonav" | "dpad" | "trackball" | "wheel"android:reqTouchScreen=["undefined" | "notouch" | "stylus" | "finger"] />
包含于

<manifest>

描述:
指明了硬件和软件功能的应用需要。例如,一个应用程序可以指定其需要的物理键盘或特定的导航装置,如轨迹球。该规范是为了避免安装在哪里,它不会工作设备的应用。
注意:大多数应用程序不应该使用这个清单标签。你应该总是支持,以协助视障用户和支持设备,除了或代替触摸提供D-键盘输入一个方向键(D-PAD)输入。有关如何支持您的应用程序D-键盘输入信息,请阅读启用焦点导航。如果您的应用程序绝对不能没有触摸屏功能,则改用<使用特征>标签来声明所需的触摸屏类型,从“android.hardware.faketouch”基本触摸式的事件更先进的触摸类型,比如“ android.hardware.touchscreen.multitouch.jazzhand“从多个手指不同的输入。
属性:

android:reqFiveWayNav

不管是不是应用程序需要一个五向导航控制 - “真”,如果是的话,和“假”如果不是。五向控制是一个可以移动选择向上,向下,向右或向左移动,并且还提供了调用当前选择的一种方式。它可能是一个D垫(定向板),轨迹球,或其他设备。
如果应用程序需要的方向控制,而不是一个特定类型的控制,它可以将该属性设置为“真”,并忽略红色导航属性。然而,如果需要特定类型的方向控制,它可以忽略这个属性和设置REQ导航代替。

android:reqHardKeyboard

不管是不是应用程序需要一个硬件键盘 - “真”,如果是的话,和“假”如果不是。

android:reqKeyboardType

该式键盘的应用需要,如果有的话在所有。此属性并不硬件和软件键盘区分开来。如果需要某种类型的硬件键盘,此处指定的类型和还设置reqHardKeyboard属性为“真”。
该值必须是下列字符串之一:

ValueDescription
"undefined"应用程序不需要键盘。 (键盘需求是不确定的。)这是默认值。
"nokeys"应用程序不需要键盘。
"qwerty"应用程序需要一个标准的QWERTY键盘
"twelvekey"应用程序需要一个十二键键盘,像大多数手机上 - 通过9加星号(*)和井号(#)键的键从0数字。
android:reqNavigation

所需的应用程序的导航装置,如果有的话。该值必须是下列字符串之一:

ValueDescription
"undefined"该应用程序不需要任何类型的导航控制。 (导航要求未被定义。)这是缺省值
"nonav"该应用程序不需要导航控制。
"dpad"该应用程序需要导航D-垫(方向键)
"trackball"该应用程序需要导航轨迹球。
"wheel"该应用程序需要一个导航轮。
如果应用程序需要一个导航控制,但控制的确切类型并不重要,它可以设置reqFiveWayNav属性为“true”,而不是设置这一项。

android:reqTouchScreen

类型的触摸屏的应用需要,如果任何在所有。该值必须是下列字符串之一:

ValueDescription
"undefined"The application doesn't require a touch screen. (The touch screen requirement is undefined.) This is the default value.
"notouch"The application doesn't require a touch screen.
"stylus"The application requires a touch screen that's operated with a stylus.
"finger"The application requires a touch screen that can be operated with a finger.

Note: If some type of touch input is required for your app, you should instead use the <uses-feature> tag to declare the required touchscreen type, beginning with "android.hardware.faketouch" for basic touch-style events.



ValueDescription
"undefined"The application doesn't require a touch screen. (The touch screen requirement is undefined.) This is the default value.
"notouch"The application doesn't require a touch screen.
"stylus"The application requires a touch screen that's operated with a stylus.
"finger"The application requires a touch screen that can be operated with a finger.

Note: If some type of touch input is required for your app, you should instead use the <uses-feature> tag to declare the required touchscreen type, beginning with "android.hardware.faketouch" for basic touch-style events.

ValueDescription
"undefined"The application doesn't require a touch screen. (The touch screen requirement is undefined.) This is the default value.
"notouch"The application doesn't require a touch screen.
"stylus"The application requires a touch screen that's operated with a stylus.
"finger"The application requires a touch screen that can be operated with a finger.

Note: If some type of touch input is required for your app, you should instead use the <uses-feature> tag to declare the required touchscreen type, beginning with "android.hardware.faketouch" for basic touch-style events.

ValueDescription
"undefined"The application doesn't require a touch screen. (The touch screen requirement is undefined.) This is the default value.
"notouch"The application doesn't require a touch screen.
"stylus"The application requires a touch screen that's operated with a stylus.
"finger"The application requires a touch screen that can be operated with a finger.

Note: If some type of touch input is required for your app, you should instead use the <uses-feature> tag to declare the required touchscreen type, beginning with "android.hardware.faketouch" for basic touch-style events.

  相关解决方案