The Canvas class holds the "draw" calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas to host the draw calls (writing into the bitmap), a drawing primitive (e.g. Rect, Path, text, Bitmap), and a paint (to describe the colors and styles for the drawing).
canvas 里面有一个bitmap的对象,这个对象最终要绘制在屏幕上
canvas有默认的paint 和默认的 bitmap 也可以允许传入
paint是画笔,由他来负责具体的绘制。比如可以绘制线条颜色等,又如如果传入Bitmap则设置的画笔透明度的话,bitmap本身也就回体现透明度效果
view的绘制就是委托给canves的
但是 view的canvas是从哪里来的???
Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象,就可以将这个可画对象当作一块“画布(Canvas)”,在其上面操作可画对象,并最终将这种可画对象显示在画布上,有点类似于“内存画布“。
自己理解 其实drawable是一个泛化的可以绘制的对象,其最终还是要调用draw(canvas)使用canvas的方法进行绘制
canvas应该是最基础的了 都有native方法了
Animation 基于view?
sendMessage 和 dispatchMessage 区别
看代码便知