supports-screens使用

本文介绍Android API 对屏幕适配的支持

使用属性元素来控制应用程序是否应分发给更小的屏幕还是有它的UI放大(“放大”),以适应更大使用系统的屏幕屏幕兼容模式。当你已经不适合更大的屏幕尺寸和正常调整大小并没有达到相应的效果,屏幕兼容模式将通过模拟扩展您的UI 正常尺寸的屏幕和中密度,然后放大,使其充满整个屏幕。要注意的是这会导致像素化和UI的模糊,因此,如果您优化的用户界面为大屏幕它的更好。

语法

1
2
3
4
5
6
7
8
9
10
11
<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"/>

这句话写在清单文件标签下。

说明

  • android:resizeable

    指示应用程序是否是可调整大小不同的屏幕大小。此属性是真实的,默认情况下。如果设置为false,系统将运行在您的应用程序的屏幕兼容模式在大屏幕上。

    此属性已被弃用。据介绍,以帮助应用过渡,从Android 1.5的到1.6时,首次引入了多屏幕的支持。你不应该使用它。

  • android:smallScreens

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

  • android:normalScreens

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

  • android:largeScreens

    指示应用程序是否支持更大的屏幕形式因素。大屏幕被定义为一个屏幕,是不是一个“正常”的手机屏幕显著较大,因此可能需要对应用程序的一部分,一些特殊的照顾好好利用它,虽然它可能依赖于系统调整,以填补屏幕。

    它的默认值实际上一些版本之间变化,所以它的更好,如果你明确地在任何时候宣布这个属性。若设置为“假”,将通常使屏幕兼容模式。

  • android:xlargeScreens

    指示应用程序是否支持超大屏幕的外形尺寸。一个XLARGE屏幕被定义为屏幕,比“大”屏幕显著较大,如片剂(或更大的东西),并可能需要对应用程序的一部分,特别注意利用好它,虽然它可能依靠调整该系统填补了屏幕。

    它的默认值实际上一些版本之间变化,所以它的更好,如果你明确地在任何时候宣布这个属性。若设置为“假”,将通常使屏幕兼容模式。

    此属性是在API级9出台。

  • android:anyDensity

    指示应用程序是否包括资源,以适应任何屏幕像素密度。

    对于支持的Android 1.6(API等级4)和更高的应用程序,这是在默认情况下“真”和你不应该设置“假”,除非你是绝对肯定的是,有必要为您的应用工作。它可能是唯一需要时间来关闭是,如果你的应用程序直接操纵位图(见支持多种屏幕以获取更多信息的文档)。

  • android:requiresSmallestWidthDp

    指定所需的最小最小宽度。的最小宽度是屏幕空间的最短尺寸(以dp必须提供给您的应用程序的用户界面,也就是说,最短可用屏幕的两个维度的单位)。因此,为了使设备被认为与应用程序兼容,该设备的smallestWidth必须大于该值等于或更大。(通常情况下,您为这个值就是“最小宽度”,你的布局支持,无论画面的当前方向。)
    例如,一个典型的手机屏幕上有一个最小宽度的320dp,7“平板电脑有一个600dp的最小宽度和10”平板电脑有一个720dp最小宽度。这些值通常是最小宽度,因为它们是在屏幕的可用空间的最短尺寸。

    这对你的价值进行比较的大小会考虑到屏幕装饰和系统界面。例如,如果该装置具有在显示器上一些持久UI元素,则系统会声明设备的smallestWidth为一个比实际屏幕尺寸小,占这些UI元素,因为这些是可提供的UI画面的像素。因此,您使用的值应该是布局所需的最小宽度,无论画面的当前方向。

    如果你的应用程序中正确调整大小较小的屏幕尺寸(下到 小尺寸或320dp的最小宽度),你并不需要使用这个属性。否则,你应该为这个属性相匹配的使用你的应用程序中的最小值使用的值 最小的屏幕宽度预选赛(swdp)。

注意: Android系统并没有注意这个属性,因此它不会影响你的应用程序的行为在运行时。相反,它是用来启用过滤为您的服务,如谷歌Play应用
程序。不过, 目前谷歌播放不支持过滤这个属性(在Android 3.2),所以你应该继续使用,如果你的应用程序不支持小屏幕的大小等属性。

这个属性在API级别13引入的。

  • android:compatibleWidthLimitDp

    此属性使您可以启用屏幕兼容模式通过指定您的应用程序设计的最大“最小屏幕宽度”为用户可选功能。如果设备的可用屏幕的最小边比这里你的价值越大,用户仍然可以安装应用程序,但提供给屏幕兼容模式下运行它。默认情况下,屏幕兼容模式被禁止,你的布局调整大小以适应屏幕像往常一样,但一个按钮在系统栏,使用户可以打开和关闭屏幕兼容模式下可用。

    如果您的应用程序与所有的屏幕尺寸兼容,其布局调整大小正确,你不需要使用这个属性。

注:目前,屏幕兼容模式只模拟手机屏幕有320dp宽度,因此,如果您的值不应用于屏幕兼容模式android:compatibleWidthLimitDp比320大。

这个属性在API级别13引入的。

  • android:largestWidthLimitDp

    该属性可以强制启用屏幕兼容模式通过指定您的应用程序设计的最大“最小屏幕宽度”。如果设备的可用屏幕的最小侧比你更大的价值在这里,应用程序屏幕兼容模式运行,没有办法为用户禁用它。
    如果您的应用程序与所有的屏幕尺寸兼容,其布局调整大小正确,你不需要使用这个属性。否则,你应该首先考虑使用android:compatibleWidthLimitDp属性。您应该使用 android:largestWidthLimitDp,只有当调整为更大的屏幕和屏幕兼容模式时,用户应该使用你的应用程序的唯一方法您的应用程序在功能上打破属性。

注:目前,屏幕兼容模式只模拟手机屏幕有320dp宽度,因此,如果您的值不应用于屏幕兼容模式android:largestWidthLimitDp比320大。

这个属性在API级别13引入的。

一般设置为

1
2
3
4
5
6
7
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"/>