Draw with a Canvas

当你正在写一个应用,这个应用需要一些特殊的绘制,或者需要控制动画的图片,你可以达到次目的通过绘制到一个Canvas.这个Canvas像一个中介,或者说一个接口,他把你的绘制和你的图形将要绘制的实际surface联系起来,它处理你所有的draw操作。通过Canvas,你的绘制实际操作在一个下层的Bitmap.这个Bitmap将会放置到
窗口。
在你绘制图形的onDraw回调事件中,他提供了Canvas,你仅仅需要把所有的draw方法都操作在这个Canvas上面。当你是操作SurfaceView对象时,你也可以通过调用SurfaceHolder.lockCanvas()来获取一个Canvas(这两种情形都在下面的章节中讨论)。但是,如果你需要创建一个Canvas,那么你需要同时创建一个Bitmap,Bitmap才是承载实际绘制操作的载体。对于Canvas来说,Bitmap总是需要的,你可以像下面这样设置一个新的Canvas:
Bitmap b = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
现在你的Canvas将会在定义的Bitmap上进行绘制。通过Canvas绘制完毕后,你可以把Bitmap移动到另一个Canvas,通过一个如下的方法:canvas.drawBitmap(Bitmap,...)。推荐最后把你的最终图像绘制到 一个Canvas上,该 Canvas通过View.onDraw()或 SurfaceHolder.lockCanvas()传递给你。(查看下面的章节)
Canvas类提供了许多绘制图像的方法,例如 drawBitmap(...),drawRect(...),drawText(...),等等。其他的你使可能使用的类也坑害有draw方法。例如,你可能有一些Drawable对象,你想把他们绘制到一个Canvas上。Drawable自己拥有draw方法,而在该方法中需要一个Canvas参数。

你可能感兴趣的:(Draw with a Canvas)