drawable文件夾詳解

QVGA使用ldpi,雖然有不同尺寸,但都是120dpi左右;HVGA同理;如下圖;




-finger    用於觸摸屏的設備

-hdpi    近似於240dpi的高級顯示密度的屏幕

-mdpi    近似於160dpi的中級顯示密度的屏幕

-ldpi    近似於120dpi的低級顯示密度的屏幕

-land    橫屏顯示

-port    豎屏顯示

-long    比較長的屏幕,例如WQVGA(432×240), WVGA(800×480), FWVGA(854×480)


圖片縮放比列爲 3 :4:6:8   ldpi,mdpi,hdip,xhdip

具體計算方法爲:

  ( (size * tdensity) + (sdensity >> 1) ) / sdensity;

size:長/寬
sdensity:原圖密度;
tdensity:終端密度;

drawable-en:英文設置下的圖片資料,drawable-zh中文設置下的圖片資料。
若是要爲不合像素的手機籌辦的話,須要(以drawable-en爲例申明)
:drawable-en-hdpi
:drawable-en-ldpi
:drawable-en-mdpi
同理:爲美式英語,
:drawable-en-rUS-hdpi
:drawable-en-rUS-ldpi
:drawable-en-rUS-mdpi
再錯雜一點,爲不合標的目標的籌辦圖片資料
//豎直
:drawable-en-rUS-port-hdpi
:drawable-en-rUS-port-ldpi
:drawable-en-rUS-port-mdpi
//橫屏
:drawable-en-rUS-land-hdpi
:drawable-en-rUS-land-ldpi
:drawable-en-rUS-land-mdpi


建樹這些文件夾是有次序的。即按優先級別分列的,見下表。所以建樹文件夾時一般從左到右的分列其優先級別如:drawable-en-rUS-land-mdpi
如:drawable-en-rUS-port-160dpi-finger-qwerty-dpad-480 x320/


限制符Qualifier

值Values

移動國度碼MCC和移動收集碼MNC

手機設備SIM卡上的移動國度碼和移動收集碼。比如mcc310-mnc004 美國,Verizon品牌); mcc208-mnc00 法國,Orange品牌); mcc234-mnc00 英國,BT品牌). 
若是這個設備應用一個無線連接(GSM德律風),則MCC來自SIM卡,而MNC來自該設備將要附着的收集。你有時會僅應用MCC,例如包含特定國度合法資料在您的應用法度中。若是您的應用法度指定了MCC/MNC組合的資料,這些資料僅在MCCMNC都匹配的時辰才幹應用。

說話和區域Languageand region

兩個字母的ISO639-1說話碼和ISO3166-1-alpha-2區域碼 "r"爲前綴。比如en-rUS,fr-rFR,es-rES.這個代碼是大小寫敏感的:說話碼是小寫字母,國度碼是大寫字母。你不克不及零丁指定一個區域,然則你可以零丁指定一個說話,比如en,fr, es, zh.

屏幕標的目標Screenorientation

縱向,橫向,正方形(port,land, square

屏幕像素密度Screenpixel density

92dpi,108dpiAndroid選擇應用哪個資料時,它對屏幕像素密度的處理懲罰和其它限制符不合。在文章後面描述的步調1Android如何查找最匹配的目次中,屏幕密度總被認爲是匹配的。在步調4中,若是被推敲的限制符是屏幕密度,Android將選擇在那個地位的最佳匹配,而無需持續步調5

觸摸屏類型Touchscreentype

非觸摸式,觸摸筆,手指(notouch,stylus, finger

鍵盤可用體式格式Whetherthe keyboard is available to the user

外在鍵盤,隱躲鍵盤,軟鍵盤(keysexposed,keyshidden,keyssoft
若是你的應用法度有一個特定的資料只能經由過程軟件盤應用,則應用keyssoft 值,若是沒有keyssoft 資料可用(只有keysexposed  keyshidden)並且該設備顯示了一個軟鍵盤,那麼體系將應用keysexposed 資料。

首選文本輸進辦法Primarytext input method

不支撐按鍵標準鍵盤,12(nokeys,qwerty, 12key)

首選非觸摸式導航辦法Primarynon-touchscreen
navigation method

不支撐導航滑板跟蹤球滾輪(nonav,dpad, trackball, wheel)

屏幕辨別率Screendimensions

320 x240,640 x480, 更大的辨別率必須先被指定。

SDK版本SDKversion

設備支撐的SDK版本,比如v3Android1.0SDKv11.1SDKv21.5SDKv3

小版本(Minorversion)

你今朝還不克不及指定小版本,它老是被設置爲0


http://www.2cto.com/kf/201204/127339.html

表2.配置限定符名稱
 

配置 限定符值 說明
MCC和MNC 例如:
mcc310
mcc310-mnc004
mcc208-mnc00
MCC是移動國家代碼的英文首字母縮寫(The mobile country code),它的後面可選擇性的跟隨來自設備內的SIM卡的移動網絡代碼(MNC:mobile network code)。如在任何載體上,mcc310代表美國,mcc310-mnc004代表美國的Venizon公司,mcc208-mnc00代表法國的Orange公司。
如果設備使用音頻連接(GSM 電話),那麼MCC和MNC的值來自SIM卡。
也可以單獨使用MCC(例如,在應用程序中包含特殊國家合法的資源)。如果僅需要指定語言環境,那麼可以使用language和region限定符來替代(稍後討論)。如果決定要使用MCC和MNC限定符,就要仔細測試,使它能夠滿足你所期望的工作。
還可以查看配置域mcc和mnc,它們分別指示了當前的移動國家代碼和移動網絡代碼。
mcc:http://developer.android.com/reference/android/content/res/Configuration.html#mcc
mnc:http://developer.android.com/reference/android/content/res/Configuration.html#mnc
 
語言和地區 例如:
en
fr
en-rUS
fr-rFR
fr-rCA
語言是用兩個字母的ISO 639-1語言代碼定義的,緊跟其後的是可選的兩個ISO-3166-1-appha-2地區代碼字母(前面是小寫的“r”)。
這個編碼不區分大小寫,r前綴被用於區分地區部分,不能夠單獨指定地區。
如果用戶改變了系統中的語言設置,那麼在應用程序的運行期間也能夠改變爲對應的語言。
最小寬度 sw<N>dp
例如:
sw320dp
sw600dp
sw720dp
屏幕的基本尺寸,是指最短的可用屏幕區域。具體的說,設備的最小寬度是屏幕可用的寬度和高度中最短的那個(也可以把它看做是屏幕的最小可能的寬度)。這樣就可以使用這個限定符來確保應用程序至少有<N>dp的寬度可用於UI界面,而不管屏幕的當前方向。
例如,如果佈局在任何時候都需要至少600dp的最小屏幕尺寸,那麼就能夠使用這個限定符,在res/layout-sw600dp/目錄中創建佈局資源。系統只會在可用屏幕的尺寸至少是600dp的時候纔會使用這些資源,而不管600dp是否是被用戶認知的高度或寬度。最小寬度是設備的固定屏幕尺寸特徵,當屏幕的方向發生改變時,設備的最小寬度不改變。
設備的最小寬度需要考慮屏幕的裝飾和系統UI的佔用。例如,如果設備有一些固定的UI元素要沿着最小寬度的軸向,佔用一定的屏幕空間,那麼系統聲明的最小寬度要比實際的屏幕尺寸要小,因爲被系統佔用的像素部分對用戶應用程序的UI無效。因此,這個值應該是應用程序佈局所需要的最小的實際尺寸(通常,這個值是佈局支持的最小寬度,而不管屏幕的當前方向)。
以下是可以使用的通用屏幕尺寸的一些值:
1.320,針對以下屏幕配置的設備:
  240x320ldpi(QVGA手持設備)
  320x480mdpi(手持設備)
  480x800hdpi(高分辨率手持設備)
2.480,針對480x800mdpi的屏幕(平板或手持設備)
3.600,針對600x1024mdip的屏幕(7英寸平板)
4.720,針對720x1280mdip的屏幕(10英寸平板)
當應用程序提供了多個帶有不同值的最小寬度限定符資源目錄時,系統會使用最接近(不超出)設備最小寬度的那個資源。
這個限定符被添加在API級別13中。
還要看android:requiresSmallestWidthDp屬性,它聲明瞭與你的應用程序兼容的最小的最小寬度,並且smallestScreenWidthDp配置字段會持有這個設備最小寬度的值。
可用寬度 w<N>dp
例如:
w720dp
w1024dp
指定最小的可用屏幕寬度,在資源中應該以dp爲單位來定義<N>的值。當方向在橫向和縱向之間改變時,這個配置值會跟當前的實際的寬度相匹配。
當應用程序給這個配置提供了多個不同值的資源目錄時,系統會使用最接近(不超過)設備當前屏幕寬度的那個配置。這個值需要考慮屏幕裝飾佔據的空間,因此,如果設備在顯示的左邊或右邊有一些固定的UI元素,那麼使用的寬度值就要比實際的屏幕尺寸小,因爲這些固定UI元素的佔用,使得應用程序的可用空間減少。
這個特性被添加在API級別13中
還要看screenWidthDp配置字段,它持有當前的屏幕寬度。
可用高度 h<N>dp
例如:
h720dp
h1024dp
指定最小的可用屏幕高度,在資源中應該以dp爲單位來定義<N>的值,當方向在橫向和縱向直接改變時,這個配置值應該跟當前的實際高度匹配。
當應用程序給這個配置提供了不同值的多個資源目錄時,系統會使用最接近(不超過)設備當前屏幕高度的那個配置。這個要考慮屏幕裝飾的佔用情況,因此,如果設備在顯示的上方或底部有一些固定的UI元素,那麼要使用的高度值要比實際的屏幕尺寸小,因爲這些固定UI元素的佔用,使得應用程序的可用空間減少。不固定的屏幕裝飾(如電話的狀態欄能夠在全屏時被隱藏)是不考慮的,像標題欄或操作欄這樣的窗口裝飾也不考慮,因此應用必須準備處理比它們指定的空間要小的情況。
這個限定符被添加在API級別13中。
還要看screenHeightDp配置字段,它持有當前屏幕的高度。
屏幕尺寸 small
normal
large
xlarge
small:這種屏類似低分辨率的QVGA屏幕。對於小屏的最小布局尺寸大約是320x426dp。例如QVGA低分辨率和VGA高分辨率。
normal:這種屏類似中等分辨率的HVGA屏幕。對於普通屏幕的最小布局尺寸大約是320x470dp。如,WQVGA低分辨率屏、HVGA中等分辨率屏、WVGA高分辨率屏。
large:這種屏類似中等分辨率的VGA屏幕,對於大屏幕的最小布局尺寸大約是480x640dp。例如VGA和WVGA的中等分辨率屏。
xlarge:這種屏被認爲比傳統的中等分辨率的HVGA屏幕大。針對xlarge屏的最小布局尺寸大約是720x960dp。在大多數情況下,這種超大屏幕的設備因爲太大而要放到揹包中來攜帶,而且最有可能的是平板樣式的設備。
注意:使用尺寸限定符不意味着資源僅用於這個尺寸的屏幕。如果沒有用限定符提供與當前設備配置相匹配的可選資源,那麼系統會使用與配置最接近的資源。
警告:如果所有使用尺寸限定符的資源都比當前屏幕大,那麼系統將不會使用它們,並且應用程序會在運行時崩潰(例如,如果所有的佈局都被標記了xlarge限定符,而設備卻是一個普通尺寸的屏幕)。
這個限定符被添加在API級別4以後的版本中。
屏幕外觀 long
notlong
long:長屏幕,如WQVGA、WVGA、FWVGA
notlong:非長屏幕,如QVGA、HVGA、VGA
這個限定符被添加在API級別4以後的版本中
這個限定符完全是基於屏幕的外觀比率,不相對屏幕的方向。
還要看screenLayout配置字段,它指示了屏幕是否是長屏。
屏幕方向 port
land
port:縱向設備(垂直)
land:橫向設備(水平)
如果用戶旋轉屏幕,這個限定能夠在應用程序運行期間改變。
orientation配置字段指示當前設備的方向。
泊位模式 car
desk
car:設備停靠在汽車中
desk:設備停靠在書桌中
這個限定符被添加在API級別8以後的版本中
如果用戶改變了設備的停靠地點,那麼能夠在應用程序的運行期間改變這個限定。可以使用UiModeManager對象來啓用或禁止這種模式。
夜間模式 night
notnight
night:夜間
notnight:白天
被添加在API級別8以後的版本中
如果夜間模式被保留在自動模式中(默認),那麼在應用程序運行期間,會基於白天的時間來進行模式的改變。可以使用UiModeManager對象來啓用或禁止這種模式。
屏幕像素密度(dpi) ldpi
mdpi
hdpi
xhdpi
nodpi
tvdpi
ldpi:針對大約120dpi的低分辨率屏幕;
mdpi:針對大約160dpi的中等分辨率屏幕(在傳統的HVGA上);
hdpi:針對大約240dpi的高分辨率屏幕;
xhdpi:針對大約320dpi的超高分辨率屏幕,被添加在API基本8以後的版本中;
nodpi:這個限定被用於不想根據匹配的設備分辨率進行縮放的位圖資源。
tvdpi:在mdpi和hdpi之間的屏幕,大約是213dpi。這種分組不是主要的分辨率,大多數是爲電視來考慮的,並且大多數應用不需要它---提供mdpi和hdpi資源就可以滿足大多數應用程序需要了,並且系統會適當的縮放它們。這個限定符在API級別13以後被引入。
四種主要的分辨率之間的縮放比例是:3:4:6:8(忽略tvdpi分辨率),因此一個9x9的ldpi位圖,在mdpi中是12x12、在hdpi中是18x18、在xhdpi中是24x24。
如果感覺在電視或其他某些設備上的圖片資源不好看,並且想要試用tvdpi資源,那麼縮放因子是1.33*mdpi。例如,一個100px x 100px的mdpi圖片的圖片應該被放大成133px x 133px的tvdpi圖片。
注意:使用分辨率限定符不意味着資源僅適用與對應分辨率的屏幕。如果沒有提供與當前設備配置匹配的可選資源,那麼系統會使用最接近的資源。
觸屏類型 notouch
stylus
finger
notouch:非觸屏設備
stylus:有適用手寫筆的電阻屏設備
finger:觸屏設備
touchscreen配置字段,指示到了設備上的觸屏類型。
鍵盤可用性 keysexposed
keyshidden
keyssoft
keysexposed:設備有可用的鍵盤。如果設備啓用了軟鍵盤,那麼即使在硬鍵盤沒有暴露給用戶時也可以使用這個限定符。如果沒有提供軟鍵盤或者軟鍵盤被禁用,那麼只有在硬鍵盤被暴露給用戶時才能夠使用這個限定符。
keyshidden:設備有可用的硬鍵盤,但是被隱藏了,並且設備沒有可用的軟鍵盤。
keyssoft:設備有可用的軟鍵盤,不管它是否可見。
如果提供了keysexposed資源,但沒有keyssoft資源,那麼只要系統有可用的軟鍵盤,系統就會使用keysexposed資源而不管鍵盤是否可見。
如果用戶打開了硬鍵盤,就可以在應用程序運行期間改變這個限定。
hardKeyboardHidden和keyboardHidden配置字段分別指明硬鍵盤的可見性以及可見的鍵盤類型(包括軟鍵盤)。
主要文本輸入法 nokeys
qwerty
l2key
nokeys:設備沒有用於文本輸入的硬鍵盤;
qwerty:設備有標準的硬鍵盤,不管用戶是否可見;
12key:設備有12個鍵的硬鍵盤,不管用戶是否可見。
keyboard配置字段指明可用的主要文本輸入方法。
導航鍵的有效性 navexposed
navhidden
navexposed:導航鍵對用戶可用;
navhidden:導航鍵不可用。
如果用戶能夠看到導航鍵,那麼在應用程序運行時就能夠改變這個限定。
navigationHidden配置字段,指示導航鍵是否隱藏。
主要的非觸屏導航方法 nonav
dpad
trackball
wheel
nonav:除了使用觸屏以外,設備沒有其他導航設施。
dpad:設備有用於導航的定向板(d-pad)。
trackball:設備有用於導航的軌跡球。
wheel:設備有用於導航的定向滾輪(不常見)。
navigation配置字段指明可用的導航方法類型。
平臺版本(API 級別) 例如:
v3
v4
v7
設備支持的API級別。如v1代表API級別1(帶有Android1.0或更高版的設備),v4代表API級別4(帶有Android1.6或更高版本的設備)
警告:Android1.5和1.6只有在限定符跟平臺版本完全匹配時,才能匹配資源

更多2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章