一个Drawable资源是绘图中的一个普通概念,可以再屏幕上绘制出来。可以通过APIs中的getDrawable(int)方法检索出来,也可以在其他的XML资源中通过android:drawable和android:icon等属性使用它。Android中有多种不同类型的drawable。
Bitmap File:一个位图文件(.png,.jpg,或.gif), 生成一个BitmapDrawable对象.
Nine-Patch File:就是一张可以基于自动适应内容大小而伸缩区域的png图片(.9.png), 生成一个NinePatchDrawable对象
Layer List:这个Drawable用来管理一个其它多个drawable的数组.既然是一个数组,所以就不难理解索引值最大的元素将画在最高部. 生成一个 LayerDrawable对象.
State List:这是一个xml文件用于不同的状态来引用不同的位图图形(比如,当一个Button控件按下状态要显示不同的图像).生成一个StateListDrawable对象.
Level List:一个xml文件,定义了一个drawable可用于管理几个可以替换的drawable.每一个都会分配一个最大的数值.生成一个LevelListDrawable.
Transition Drawable:一个xml文件,定义了一个drawable可用于两张图片形成一个渐变的过渡效果生成一个TransitionDrawable对象
Inset Drawable:一个xml文件,定义了一个drawable,跟据指定的距离插入到另一个drawable.当一个View<视图>对象需要一张比其实际边框要小的背景图时,就可以用到这个了.
Clip Drawable:一个xml文件,定义了一个drawable, 根据当前对准值作相应的拉伸处理,生成 ClipDrawable对象.
Scale Drawable:一个xml文件,定义了一个drawable, 根据当前对准值作相应的平铺处理,生成 ScaleDrawable对象.
Shape Drawable:就是通过一个xml文件来定义一个包含颜色和渐变的几何图形, 生成一个 ShapeDrawable对象
AnimationDrawable:还可以创建一个AnimationDrawable对像.Color Drawable:在xml中一个color resource<颜色资源>也可以作为一个drawable. 例如,创建一个state list drawable时,你可以为android:drawable属性引用一个颜色资源(android:drawable="@color/green"
)
Drawable资源都是存储在res/drawable目录下的文件,当然,在一个面向对象的语言中,它最终肯定也会变成一个对象。在Android中,Drawable类,代表这类资源。下面是Drawable和子类之间的继承关系。
Drawable中几个比较常用的静态方法,可以从一个文件中创建一个Drawable对象。