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>标志。