Drawable的介绍

本文为博主原创文章,转载请注明出处:http://blog.csdn.net/czd3355/article/details/52624498
本系列的知识主要通过学习《Android开发艺术探索》

一、简介

Drawable有很多种,它们都表示一种图像概念,但它们又不全是图片,通过颜色也可以构造出各种各样的图像的效果。在实际开发中Drawable常被用来作为View的背景使用(在XML中,控件使用android:background=”@drawable/esources_id”属性来引用Drawable)。Drawable一般都用XML来定义,当然也可以用java代码来定义,不过比较复杂。

注意:Drawable的内部宽高可以通过getIntrinsicWidth和getIntrinsicHeight来获取。但不是所有的Drawable都有内部宽高,比如一张图片所形成的Drawable,它的内部宽高就是图片的宽高,但一个颜色所形成的Drawable,它就没有内部宽高的概念。同时,Drawable的内部宽高不等同于它的大小,一般来说,Drawable是没有大小概念的。当被用作View背景时,Drawable会被拉伸至View等大。

二、优点

  1. 使用简单,比自定义View的成本低
  2. 非图片类型的Drawable占用空间较小,对减小apk的大小很有帮助

三、分类

  1. BitmapDrawable
  2. NinePatchDrawable
  3. ShapeDrawable
  4. LayerDrawable
  5. StateListDrawable
  6. LevelListDrawable
  7. TransitionDrawable
  8. InsetDrawable
  9. ScaleDrawable
  10. ClipDrawable
  11. 自定义Drawable

你可能感兴趣的:(Drawable的介绍)