Drawable資源概述
1,使用(drawable)資源
Drawable有很多種,它們都表示一種圖像的概念,但是它們又不全是圖檔。
在Android的設計中,Drawable是一個抽象類,它是所有Drawable對象的基類。
Drawable的内部寬/高:
getIntrinsicWidth和getIntrinsicheight可以擷取到它們。
并不是所有的Drawable都有内部寬/高,例如一張圖檔所形成的Drawable,它的内部寬/高就是圖檔的寬/高, 但是一個顔色所形成的Drawable是沒有内部寬/高的概念的。Drawable的内部寬/高不等同于它的大小,一般來說Drawable是沒有大小概念的,當用作View的背景時,Drawable會被拉伸至View的同等大小。
存放路徑
/res/drawable/ 該目錄下存放各種位圖檔案(如*.png、*.9.png、*.jpg、*.gif)等,
除此之外可以編譯成各種的Drawable獨享的XML檔案:
BitmapDrawable
NinePatchDrawable
ShapeDrawable
LayerDrawable
StateListDrawable
LevelListDrawable
TransitionDrawable
InsetDrawable
ScaleDrawable
ClipDrawable
自定義Drawable
2,圖檔資源認識
圖檔資源介紹:
圖檔是最簡單的Drawable資源,隻要把*.png、*.jpg、*.gif等格式的圖檔放入/res/drawable-xxx目錄下,
Android SDK就會在編譯應用自動加載這些圖檔,并在R資源清單類中生成該資源的索引。
Android提供了幾種不同的drawable檔案夾:
drawable-xxhdpi:裡面存放超超高分辨率的圖檔
drawable-xhdpi:裡面存放超高分辨率的圖檔
drawable-hdpi:裡面存放高分辨率的圖檔,如WVGA(480X800),FWVGA(480X854)
drawable-mdpi:裡面存放中等分辨率的圖檔,如HVGA(320X480)
drawable-ldpi:裡面存放低分辨率圖檔,如QVGA(240X320)
像素密度範圍
mdpi 120dpi~160dpi
hdpi 160dpi~240dpi
xhdpi 240dpi~320dpi
xxhdpi 320dpi~480dpi
xxxhdpi 480dpi~640dpi
具體情況可以檢視:螢幕适配
注意:
Android 不允許圖檔資源的檔案名中出現大寫字母,切不能以數字開頭,否則Android SDK無法為該圖檔在R類中生成資源索引。一旦生成資源索引,在java類中用這個來方法資源:
R.drawable.<file_name>
為了在程式中獲得實際的Drawable對象:
Resources提供了Drawable getDrawable(int id)方法,該方法即可根據Drawable資源在R清單類中的ID來擷取 實際的Drawable對象。