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对象。