Android 資源和配置

2018-02-18 11:15 更新

Android資源將配置概念概括為設(shè)備的任何配置。語言是一個(gè)配置選擇。

Android允許你基于相同資源ID的布局模式選擇不同的布局集。

Android通過為每個(gè)配置使用不同的目錄來做到這一點(diǎn)。

例子

當(dāng)使用智能手機(jī)時(shí),我們可以垂直或水平使用它。垂直模式稱為縱向模式,水平模式模式的橫向模式。

以下三個(gè) main_layout.xml 文件都用于布局。Android將加載相應(yīng)的文件。

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

注意

即使這里有三個(gè)單獨(dú)的布局文件,它們在R.java中只生成一個(gè)布局ID。

此ID如下所示:

R.layout.main_layout

當(dāng)你檢索與此布局ID對應(yīng)的布局時(shí),會(huì)得到適合該設(shè)備的適當(dāng)布局。

目錄擴(kuò)展 -port -land 稱為配置限定符。

這些限定符不區(qū)分大小寫,并用連字符( - )與資源分目錄名稱分開。

這些配置限定符目錄中的資源稱為備用資源。

沒有配置限定符的資源目錄中的資源稱為默認(rèn)資源。

資源配置限定符

大多數(shù)可用的配置限定符如下所列??梢允褂幂^新的API添加新的限定符。

  • car, desk:對接類型。
  • en-rUS:語言和地區(qū)。
  • keysexposed, keyssoft, keyshidden:鍵盤類型。
  • ldpi, mdpi, hdpi, xhdpi, nodpi, tvdpi:屏幕密度。
  • long, notlong:屏幕類型。
  • mccAAA:AAA是移動(dòng)國家/地區(qū)代碼。
  • mncAAA:AAA是運(yùn)營商/網(wǎng)絡(luò)代碼。
  • navexposed, navhidden:導(dǎo)航鍵隱藏或顯示。
  • night, notnight:夜間或日間。
  • nokeys, qwerty, 12key:鍵數(shù)。
  • nonav, dpad, trackball, wheel:導(dǎo)航設(shè)備的類型。
  • notouch, stylus, finger:屏幕種類。
  • port, land:縱向或橫向。
  • small, normal, large, xlarge:屏幕尺寸。
  • sw<N>dp, w<N>dp, h<N>dp:最小寬度,可用寬度,可用高度。
  • v3, v4, v7:API級(jí)別。

使用限定符,你可以在以下代碼中顯示資源目錄。

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

限定符優(yōu)先順序

參考如下目錄。

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

布局文件 main_layout.xml可用于兩種額外的變體:用于語言或用于布局模式。

即使在縱向模式下,Android從layout-en目錄中選擇布局,因?yàn)檎Z言變化在方向變化之前。

請注意,字符串資源基于各個(gè)ID,而布局資源是基于文件。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)