Android 的 Drawable
Android把任何可绘制在屏幕上的图形图像都称为drawable。drawable可以是一种抽象的图形、一个继承Drawable类的子类,或者是一张位图图像。《Android权威编程指南》
Drawable 的内部宽/高这个参数比较重要。通过 getIntrinsicWidth 和 getIntrinsicHeight 这个两个方法可以获取到它们。但是并不是所有的 Drawable 都有内部宽/高, 比如一张图片形成的 Drawable, 它的内部宽/高就是图片的宽/高,但是一个颜色所形成的 Drawable, 它就没有内部宽/高的概念。另外需要注意的是, Drawable 的内部宽/高不等同于它的大小,一般来说吗,Drawable 是没有大小概念的,当用作 View 的背景时, Drawable 会被拉伸至 View 的同等大小。《Android 开发艺术探索》
Drawable 的分类
BitmapDrawable
- 可以直接引用原始图片
- 通过 XML 描述
<bitmap />
NinePatchDrawable
通过 XML 描述
<nine-path />
ShapeDrawable
通过 XML 描述
<shape />
LayerDrawable
通过 XML 描述
<layer-list <item /> </layer-list>
StateListDrawable
通过 XML 描述
<selector <item /> </selector>
TransitionDrawable
通过 XML 描述
<tansition <item /> </transition>
InsetDrawable
通过 XML 描述
<inset />
ScaleDrawable
通过 XML 描述
<scale />
ClipDrawable
通过 XML 描述
<clip />