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 稱為配置限定符。

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

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

沒有配置限定符的資源目錄中的資源稱為默認資源。

資源配置限定符

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

  • car, desk:對接類型。
  • en-rUS:語言和地區(qū)。
  • keysexposed, keyssoft, keyshidden:鍵盤類型。
  • ldpi, mdpi, hdpi, xhdpi, nodpi, tvdpi:屏幕密度。
  • long, notlong:屏幕類型。
  • mccAAA:AAA是移動國家/地區(qū)代碼。
  • mncAAA:AAA是運營商/網(wǎng)絡代碼。
  • navexposed, navhidden:導航鍵隱藏或顯示。
  • night, notnight:夜間或日間。
  • nokeys, qwerty, 12key:鍵數(shù)。
  • 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

限定符優(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目錄中選擇布局,因為語言變化在方向變化之前。

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

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號