android 有不少種類的資源,有7個是在res下新建目錄而後將資源放在目錄下:res/values,res/xml,res/layout,res/drawable,res/anim,res/menu,res/raw android
還有一種是存放在res同級的目錄assets目錄下,也就是說大致上android資源種類有8類。 數組
res/values : 存放字符串,顏色,尺寸,數組,主題,類型等資源。 網絡
res/xml : 能夠是任意類型的xml文件,這些xml文件能夠在運行時讀取 app
res/layout:佈局文件 佈局
res/drawable:圖片(bmp,png,gif,jpg等) 動畫
res/anim: xml格式的動畫資源 (幀動畫 和 補間動畫) spa
res/menu:菜單資源 orm
res/raw:會封裝在apk,可是不會被編譯,能夠聽任意類型文件,通常存放比較大的音頻,視頻,圖片,文檔,會在R類 視頻
生成資源ID xml
assets:能夠存聽任意類型,不會被編譯,與raw相比,不會在R類中生成資源ID
各類資源的使用:
使用系統資源:
android sdk中 提供了大量的系統資源使用這些系統資源(sdk安裝目錄\platforms\android-2.2\data\res)
經過android.R.resourceType.resourceId 的方式
resourceType表示資源類型:String,Color,Drawable等,resouceId表示資源Id
在代碼中鍵入android.R.會顯示系統定義的資源。
本身定義資源:
1.字符串資源(sring)
存放位置:res/values
存放方式:xml
存放示例:
<resources>
<string name="hello">你好</string>
</resources>
使用:
a.在layout文件中 =" @string/hello"
b.代碼中 Activity實例的getString()方法
2.數組資源:(array)
存放位置:res/values
存放方式:xml
存放示例:
<resource>
<string-array name="arrays">
<item>
北京
</item>
<item>
長沙
</item>
</string-array>
使用:
String[] arrays = Activity實例的gerResources).getStringArray(R.array.arrays);
注意:除了字符串數組資源外還有數字數組資源<integer-array>可是 每一項元素的值值整數
3. 顏色資源(color)
存放位置:res/values
存放方式:xml
存放示例:
<resources>
<color name="blue_color">#0000FF</color>
</resources>
使用:
a.layout佈局文件中
="@color/blue_color"
b.代碼中
Activity實例的getResources().getColor(R.color.blue_color);
4.尺寸資源(dimension):
存放位置:res/values
存放方式:xml
存放示例:
<resource>
<dimen name="size_px">2px</dimen>
<dimen name="size_in">1.5in</dimen>
<dimen name="size_sp">30sp</dimen>
</resource>
使用:
a.layout佈局文件中
="@dimen/size_px"
b.代碼中
Activity實例的getResouces().getDimension(R.dimen.size.in);
5.類型資源(style):
存放位置:res/values
存放方式:xml
存放示例:
<resource>
<style name="style1">
<item name="android:textSize">20dp </item>
<item name="android:textColor">#ffccff</item>
</style>
</resource>
使用:
style="@style/style1"
6.主題資源(theme):
存放位置:res/values
存放方式:xml
存放示例:
與style 相似
<resource>
<style name="theme1">
<item name="android:windowTitlesize" >20dp </item>
<item name="android:textColor">#ffccff</item>
</style>
</resource>
使用:
在Androidmanifest.xml文件中的<application>標籤的或者<activity> 標籤,android:theme = "@style/theme1"
7.繪畫資源(drawable)
存放位置:res/drawable
存放方式:各類圖片
使用:
a.layout佈局文件中
="@drawable/img1";
b.代碼中
Drawable drawable = getResources().getDrawable(R.drawable.img1);
8.RAW資源
存放位置:res/raw
存放方式:任意類型
使用:
InputStream is= getResources().openRawResource(R.raw.test);
9.ASSETS資源
存放位置:與res同級的assets目錄下
存放方式:任意類型
使用:
InputStream is= getAssets().open("test.txt");
其餘備用資源目錄
mccAAA:AAA是移動設備國家代碼
mncAAA:AAA是運營商/網絡代碼
en-rUS:語言和區域。
small、normal、large、xlarge:屏幕大小
long、notlong:屏幕類型
port、land:縱向或橫向
car、desk:擴展塢類型
night、notnight:晚上或白天
ldpi、mdpi、hdpi、xhdpi、nodpi:屏幕像素密度
notouch、stylus、finger:屏幕種類
keysexposed、keyssoft、keyshidden:鍵盤類型
nokeys、qwerty、12key:鍵數
navexposed、nachidden:隱藏或顯示導航鍵
nonav、dpad、trackball、wheel:導航設備類型
v三、v四、v7:API級別
如:
\res\layout-mcc312-mnc222-en-rUS
\res\layout-ldpi
\res\layout-hdpi
\res\layout-car