Android  drawable 简介

1、AnimationDrawable


  一般用来创建帧动画,由一系列的Drawable对象组成,也可作为View的背景。在XML中以<animation-list>标志。



2、BitmaDrawable


  包含一个位图(bitmap),可以平铺、拉伸等,其创建过程多样,包括根据一个文件路径、input stream、inflater xml文件 或者一个 bitmap 对象。[这个还是很有用的]。在XML中以<bitmap>标志。


  


3、ClipDrawable


根据当前的level值对其内部引用的Drawable对象进行裁剪,需要设置裁剪开始的地方及裁剪方向。也就是根据level值决定Drawable的那些部分能够显示。在XML中以<clip>标志。



4、ColorDrawable


  内部含有指定的Color值,根据Color值填充Canvas。在XML中以<color>标志。



5、Drawable


  各种XXXDrawable的父类,定义通用操作的接口。需要注意的是各种Drawable的对象是不能获得事件的。



6、DrawableContainer


  此类可以包含多个Drawable 和 多个ConstantState ,可以根据不同的ConstantState选择相应的Drawable去显示。


  


7、GradientDrawable


  (这个不太好解释)


  A Drawable with a color gradient for buttons, backgrounds, etc.


  It can be defined in an XML file with the <shape> element.



8、InsetDrawable


  内部嵌入一个Drawable对象,并在周围留有特定的距离,适用于当背景比View的bounds 小的时候。在XML中以<inset>标志。



9、LayerDrawable


  内部包含一组Drawable,并按照在数组的顺序进行显示,索引最大者显示在最上面,同时显示哦。在XML中以<layer-list>标志。

10、LevelListDrawable

  内部包含一组Drawable对象,每一个赋予一个maxLevel值,当通过SetLevel(int)设置level值的时候,取 maxLevel >= level 中最小的 maxLevel对应的Drawable进行显示。在XML以<level-list>标志。



11、NinePatchDrawable


  可动态调整大小的 bitmap, 一般定义在 XXX.png 文件中, 可缩放,占用空间小。


  


12、PaintDrawable


  带有可选圆角的Drawable。



13、PictureDrawable


  内部包含一个Picture对象的Drawable,使得能够使用Drawable的地方就能使用Picture。



14、RotateDrawable


  内部包含一个Drawable对象,可根据当前的Level值,对包含的Drawable对象进行旋转。在XML中以<rotate>标志



15、ScaleDrawable


  内部包含一个Drawable对象,根据内部level的值对引用的Drawable进行缩放。在XML以<scale>标志。



15、ShapeDrawable


        内部包含一个Shape对象,根据Shape去绘制相应的形状,默认为RectShape。在XML以<shape>标志。



16、StateListDrawable


  内部包含由状态[常见的如 View的子类的状态,foucs/pressed等]到相应Drawable的映射,根据相应的状态选择对应的Drawable。Button点击的效果便是这个实现的,其实就是根据状态更换图片罗。在XML以<selector>标志。


  


17、TransitionDrawable


         实现两个Drawable的淡入淡出效果,是LayerDrawable的子类。在XML中以<transition>标志。