Android 资源和配置
2018-02-18 11:15 更新
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,而布局资源是基于文件。
以上内容是否对您有帮助:
更多建议: