android資源(注意不能將資源文件直接保存到res 目錄,會導致編譯出錯)
對於應用強烈建議將資源與系統分離,包括代碼裏的字符串
res/row 系統不會優化的一切資源,原始文件保存,以原始input stream打開,使用資源ID調用Resources,openRawResource();
res/drowable 可繪製資源
res/animator 屬性動畫
res/anim 漸變動畫
res/values 可放置多種文件:約定文件夾 array.xml 放資源數組 color.xml 放顏色值 dimens.xml放尺寸 string.xml放字符串 style.xml放樣式
res/xml 各種xml配置文件,運行時通過調用Resources.getXml()讀取。
爲一組資源指定特定的資源配置符 文件夾命名格式:<resource_name>-<config_qualifier> 如: layout-sw600dp
配置限定符(限定符可追加多個用“-”分隔,追加多個時要按照表1順序放置,不然將會被忽略)
配置 | 限定符值 | 說明 |
MCC和MNC | 如:mcc310-mnc004 |
移動國家代碼(MCC)後跟SIM卡中的移動網絡代碼(MNC)例:mcc310 指美國的任意運營商mcc310-mnc004指美國Verizon公司; 如果使用無限電手機(GSM手機),則mcc,mnc值來自於SIM卡; |
語言和區域 | 如:en-rUS |
前兩個字母代表語言+r後兩個字母代表地區 用戶更改系統設置中的語言引起配置變化事件 |
佈局方向 | ldrtl ldltr | ldrtl佈局從右到左 注:要爲應用啓用從右到左的佈局功能,必須將supportsRtl 設置爲 "true" ,並將targetSdkVersion 設置爲 17 或更高版本 |
smallestWidth |
sw<N>dp 如:sw320dp sw600dp sw720dp |
|
可用寬度 | w<N>dp 如: w720dp w1024dp 等等 |
指定資源應該使用的最小可用屏幕寬度,以 dp 爲單位, |
可用高度 | h<N>dp | 指定資源應該使用的最小可用屏幕高度, |
屏幕尺寸 | small normal large xlarge |
注:使用尺寸限定符並不表示資源僅適用於該尺寸的屏幕。 如果沒有爲備用資源提供最符合當前設備配置的限定符,則系統可能使用其中最合適的資源。 注意:如果所有資源均使用大於當前屏幕的尺寸限定符,則系統不會使用這些資源,並且應用在運行時將會崩潰(例如,如果所有佈局資源均用 |
屏幕縱橫比 | long nolong | long:寬屏 nolong:非寬屏 |
圓形屏幕 | round notround | notround :矩形屏幕 |
屏幕方向 | land port | port :縱向 land:橫向 |
uI模式 |
car:車載手機座上顯示 desk:桌面手機座上顯示 television:電視機顯示 appliance:無顯示屏 watch:手錶 |
如果用戶將設備放入手機座中,它有可能在應用生命週期中發生改變。 可以使用 UiModeManager 啓用或禁用其中某些模式。 |
夜間模式 | night notnight | 如果夜間模式停留在自動模式(默認),它有可能在應用生命週期中發生改變。在這種情況下,該模式會根據當天的時間進行調整。 可以使用 UiModeManager 啓用或禁用此模式 |
屏幕像素密度(dpi) | ldpi mdpi hdpi xhdpi xxhdpi xxxhdpi nodpi tvdpi anydpi |
注:使用密度限定符並不表示資源僅適用於該密度的屏幕。 如果沒有爲備用資源提供最符合當前設備配置的限定符,則系統可能使用其中最匹配的資源。 |
觸摸屏類型 | notouch finger | |
鍵盤可用性 |
keysexposed keyshidden keyssoft |
keysexposed:具有可用鍵盤,無論軟硬鍵盤 keyshidden:硬鍵盤隱藏,且未啓動軟鍵盤 keyssoft:啓用軟件盤 如果只提供keysexposed資源未提供keyssoft資源,只要系統啓用軟件盤就會使用keysexposed,忽略鍵盤是否可見。 硬鍵盤插拔引起生命週期變化。 |
主要文本輸入法 |
nokeys qwerty 12key |
nokeys:沒有用於文本輸入的硬鍵盤 qwerty:標準硬鍵盤 12key:12鍵硬鍵盤 |
導航鍵可用性 |
naveexposed navhidden |
naveexposed:導航鍵可用 navhidden:導航不可以用(例如,位於密封蓋子後面) 如果用戶顯示導航鍵,它有可能在應用生命週期中發生改變 |
主要非觸摸導航方法 |
nonav dpad trackball wheel |
nonav:除了觸摸屏外,沒有其他導航設施 dpad:具有用於導航的方向鍵 trackball:具有用於導航的軌跡球 wheel:具有方向鍵 |
平臺版本(api級別) | 如:v3 v4 v18 | 設備支持的 API 級別。 |
注:有些配置限定符在不同平臺版本才添加的,在添加配置限定符會隱式添加平臺版本限定符。
限定符只能有一個值;不區分大小寫;不能嵌套文件夾使用;
創建別名資源(不是所有資源都支持創建別名,特別是xml/中的動畫資源,菜單資源,原始資源及其他未指定資源)
可繪製資源別名示例:原文件icon_ca.png 放置於res/drowable 別名 icon 使用<bitmap> 標籤引用
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/icon_ca" />
佈局資源別名示例:使用<merge> 中的 <include>標籤
<?xml version="1.0" encoding="utf-8"?>
<merge>
<include layout="@layout/main_ltr"/>
</merge>
簡單資源別名示例:直接將資源 ID 用作新資源的值即可
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello</string>
<string name="hi">@string/hello</string>
</resources>
----寧遠筆記 2019.5.19