「Android-Art」理解 Drawable
Drawable在开发中有着自己的有点:首先,它使用简单,比定义View的成本要低;其次,非图片类型的Drawable占用空间较小,这对减小APK的大小也很有帮助
以下整理自「Android开发艺术探索」第六章
一、Drawable简介
Drawable有很多种,他们都表示一种图像概念,但是他们又不全是图片,通过颜色也可以构造出各式各样的图像效果。在实际开发中,Drawable常被用来作为View的背景使用。Drawable一般都是通过XML来定义的,当然我们也可以通过代码来创建具体的Drawable对象,只是用代码创建会稍显复杂
Drawable的内部宽/高这个参数比较重要,通过getIntrinsicWidth和getIntrinsicHeight这两个方法可以获取到他们。但是并不是所有的Drawable都有内部宽/高,比如一张图片所形成的Drawable,它的内部宽/高就是图片的宽/高,但是一个颜色所形成的Drawable,他就没有内部宽/高的概念。另外需要注意的是,Drawable的内部宽/高不等同于它的大小,一般来说,Drawable时没有大小概念的,当用作View的背景时,Drawable会被拉伸至View的同等大小。
二、Drawable的常见分类
1、BitmapDrawable
2、ShapeDrawable
3、LayerDrawable
4、StateListDrawable
5、LevelListDrawable
6、TransitionDrawable
7、InsetDrawable
8、ScaleDrawable
9、ClipDrawable
具体使用见「Android开发艺术探索」第六章