您的位置:首页 > 移动开发 > Android开发

android-支持多种屏幕[屏幕支持概览] 五

2017-04-01 15:36 141 查看
Android 支持多种配置限定符,可让您控制系统 如何根据当前设备屏幕的特性选择备用资源。配置限定符是可以附加到 Android 项目中资源目录的字符串,用于指定在其中设计资源的配置。

要使用配置限定符:
在项目的 
res/
 目录中新建一个目录,并使用以下 格式命名: 
<resources_name>-<qualifier>
<resources_name>
 是标准资源名称(例如 
drawable
 或 
layout
)。
<qualifier>
 是下表 1 中的配置限定符,用于指定 要使用这些资源的屏幕配置(例如 
hdpi
 或 
xlarge
)。
您可以一次使用多个 
<qualifier>
 — 只需使用短划线分隔每个 限定符。

将适当的配置特定资源保存在此新目录下。这些资源 文件的名称必须与默认资源文件完全一样。

例如,
xlarge
 是超大屏幕的配置限定符。将 此字符串附加到资源目录名称(例如 
layout-xlarge
)时,它指向 要在具有超大屏幕的设备上使用这些资源的系统。

表 1. 可用于为 不同屏幕配置提供特殊资源的配置限定符。
屏幕特性限定符说明
尺寸
small
适用于小尺寸屏幕的资源。
normal
适用于正常尺寸屏幕的资源。(这是基线尺寸。)
large
适用于大尺寸屏幕的资源。
xlarge
适用于超大尺寸屏幕的资源。
密度
ldpi
适用于低密度 (ldpi) 屏幕 (~120dpi) 的资源。
mdpi
适用于中密度 (mdpi) 屏幕 (~160dpi) 的资源。(这是基线 密度。)
hdpi
适用于高密度 (hdpi) 屏幕 (~240dpi) 的资源。
xhdpi
适用于超高密度 (xhdpi) 屏幕 (~320dpi) 的资源。
xxhdpi
适用于超超高密度 (xxhdpi) 屏幕 (~480dpi) 的资源。
xxxhdpi
适用于超超超高密度 (xxxhdpi) 屏幕 (~640dpi) 的资源。此限定符仅适用于 启动器图标,请参阅上面的
nodpi
适用于所有密度的资源。这些是密度独立的资源。不管当前屏幕的密度如何,系统都不会 缩放以此限定符标记的资源。
tvdpi
适用于密度介于 mdpi 和 hdpi 之间屏幕(约为 213dpi)的资源。它并不是 “主要”密度组,主要用于电视,而大多数应用都不 需要它 — 对于大多数应用而言,提供 mdpi 和 hdpi 资源便已足够,系统将根据需要对其进行 缩放。如果发现必须提供 tvdpi 资源,应以 1.33*mdpi 的系数 调整其大小。例如,mdpi 屏幕的 100px x 100px 图像应该相当于 tvdpi 的 133px x 133px。
方向
land
适用于横屏(长宽比)的资源。
port
适用于竖屏(高宽比)的资源。
纵横比
long
适用于纵横比明显高于或宽于(分别在竖屏 或横屏时)基线屏幕配置的屏幕的资源。
notlong
适用于使用纵横比类似于基线屏幕 配置的屏幕的资源。
注:如果是为 Android 3.2 和 更高版本开发应用,请参阅有关声明适用于 Android 3.2 的平板电脑布局的章节,了解 在为特定屏幕尺寸声明布局资源时应使用的
新配置限定符(而不是使用表 1 中的尺寸限定符)。

如需了解有关这些限定符如何粗略地对应于实际屏幕 尺寸和密度的更多信息,请参阅本文档前面的支持的屏幕范围 。

例如,以下应用资源目录 为不同屏幕尺寸和不同可绘制对象提供不同的布局设计。使用 
mipmap/
 文件夹放置 启动器图标。
res/layout/my_layout.xml              // layout for normal screen size ("default")
res/layout-large/my_layout.xml        // layout for large screen size
res/layout-xlarge/my_layout.xml       // layout for extra-large screen size
res/layout-xlarge-land/my_layout.xml  // layout for extra-large in landscape orientation

res/drawable-mdpi/graphic.png         // bitmap for medium-density
res/drawable-hdpi/graphic.png         // bitmap for high-density
res/drawable-xhdpi/graphic.png        // bitmap for extra-high-density
res/drawable-xxhdpi/graphic.png       // bitmap for extra-extra-high-density

res/mipmap-mdpi/my_icon.png         // launcher icon for medium-density
res/mipmap-hdpi/my_icon.png         // launcher icon for high-density
res/mipmap-xhdpi/my_icon.png        // launcher icon for extra-high-density
res/mipmap-xxhdpi/my_icon.png       // launcher icon for extra-extra-high-density
res/mipmap-xxxhdpi/my_icon.png      // launcher icon for extra-extra-extra-high-density


如需了解如何使用备用资源的更多信息以及 配置限定符的完整列表(不只是屏幕配置),请参阅 提供备用资源

请注意,当 Android 系统在运行时选择使用哪些资源时,它会使用 特定逻辑确定“最佳匹配”资源。也就是说,您使用的限定符无 需在所有情况下精确匹配当前屏幕配置,系统也可 使用它们。特别是,根据屏幕尺寸限定符选择资源时,如果没有更好的匹配资源,则系统将 使用专为小于当前屏幕的屏幕而设计的 资源(例如,如有必要,大尺寸屏幕将使用标准尺寸的屏幕 资源)。但是,如果唯一可用的资源大于当前屏幕, 则系统不会使用这些资源,并且如果没有其他资源与设备 配置匹配,应用将会崩溃(例如,如果所有布局资源均用 
xlarge
 限定符标记,
但设备是标准尺寸的屏幕)。如需有关系统如何选择资源的更多信息,请参阅Android 如何查找最佳匹配资源

提示:如果您有一些系统 应该永远不会缩放(或许是因为您在 运行时亲自对图像做一些调整)的可绘制对象资源,则应将它们放在有 
nodpi
 配置限定符的目录中。 使用此限定符的资源被视为与密度无关,系统不会缩放 它们。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: