Android 资源和配置

由 luckybird 创建,youj 最后一次修改 2017-01-09

Android资源将配置概念概括为设备的任何配置。语言是一个配置选择。

Android允许你基于相同资源ID的布局模式选择不同的布局集。

Android通过为每个配置使用不同的目录来做到这一点。

例子

当使用智能手机时,我们可以垂直或水平使用它。垂直模式称为纵向模式,水平模式模式的横向模式。

以下三个 main_layout.xml 文件都用于布局。Android将加载相应的文件。

\res\layout\main_layout.xml
\res\layout-port\main_layout.xml
\res\layout-land\main_layout.xml

注意

即使这里有三个单独的布局文件,它们在R.java中只生成一个布局ID。

此ID如下所示:

R.layout.main_layout

当你检索与此布局ID对应的布局时,会得到适合该设备的适当布局。

目录扩展 -port -land 称为配置限定符。

这些限定符不区分大小写,并用连字符( - )与资源分目录名称分开。

这些配置限定符目录中的资源称为备用资源。

没有配置限定符的资源目录中的资源称为默认资源。

资源配置限定符

大多数可用的配置限定符如下所列。可以使用较新的API添加新的限定符。

  • car, desk:对接类型。
  • en-rUS:语言和地区。
  • keysexposed, keyssoft, keyshidden:键盘类型。
  • ldpi, mdpi, hdpi, xhdpi, nodpi, tvdpi:屏幕密度。
  • long, notlong:屏幕类型。
  • mccAAA:AAA是移动国家/地区代码。
  • mncAAA:AAA是运营商/网络代码。
  • navexposed, navhidden:导航键隐藏或显示。
  • night, notnight:夜间或日间。
  • nokeys, qwerty, 12key:键数。
  • nonav, dpad, trackball, wheel:导航设备的类型。
  • notouch, stylus, finger:屏幕种类。
  • port, land:纵向或横向。
  • small, normal, large, xlarge:屏幕尺寸。
  • sw<N>dp, w<N>dp, h<N>dp:最小宽度,可用宽度,可用高度。
  • v3, v4, v7:API级别。

使用限定符,你可以在以下代码中显示资源目录。

\res\layout-mcc312-mnc222-en-rUS
\res\layout-ldpi
\res\layout-hdpi
\res\layout-car

限定符优先顺序

参考如下目录。

\res\layout\main_layout.xml
\res\layout-port\main_layout.xml
\res\layout-en\main_layout.xml

布局文件 main_layout.xml可用于两种额外的变体:用于语言或用于布局模式。

即使在纵向模式下,Android从layout-en目录中选择布局,因为语言变化在方向变化之前。

请注意,字符串资源基于各个ID,而布局资源是基于文件。

您可能还喜欢:

W3Cschool学编程上微课-边学边练
二维码
建议反馈
二维码