Drawable就是一个可绘制的对象,或者叫做可渲染的对象,里面保存的是可以绘制的数据,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还可能只是一个颜色(ColorDrawable)等等,等等。
java.lang.Object | |
↳ | android.graphics.drawable.Drawable |
Known Direct Subclasses
AnimatedVectorDrawable, BitmapDrawable, ClipDrawable, ColorDrawable, DrawableContainer, GradientDrawable, InsetDrawable, LayerDrawable, NinePatchDrawable, PictureDrawable, RotateDrawable, RoundedBitmapDrawable, ScaleDrawable, ShapeDrawable, VectorDrawable
|
Known Indirect Subclasses
AnimatedStateListDrawable, AnimationDrawable, LevelListDrawable, PaintDrawable, RippleDrawable, StateListDrawable, TransitionDrawable
|
1.android 中 Drawable 类对象主要的功能就是可以给 canvas 上面绘制图形,也可以理解为渲染 canvas。这个功能是通过 Drawable 类对象的 public void draw(Canvas canvas)方法来实现的。
2.Drawable 类对象还可以设置给 View 类对象作为 View 类对象的背景等,如果 Drawable 类对象的属性修改了,Drawable 类对象可以通知关联的 View 类对象重新绘制 View 类对象,这功能是通过 Drawable 类对象的 public void invalidateSelf() 方法来实现的。invalidateSelf 方法会调用关联的 Drawable.Callback 类对象(一般是 View 类对象)的 invalidateDrawable 方法。