首先一直有一种说法是指canvas是画布、bitmap是画框,我也是又很长一段时间是通过这种方式去理解两者之间的一些方法,但是久而久之,我发现这两者的关系还是用画框和画布进行理解,明显有一些不太合适。我更愿意从另外一个角度去带入理解。
首先这两个东西都是源自于View这个类,Canvas和Bitmap都是为了最后能呈现出自己想象中的View而进行操作。首先总结一下,如果把View看做一个成品的画作,Canvas更像一个画手的角色,而Bitmap则是画作的内容,画手是作为一个中介的地位,例如Canvas就提供了很多drawXXX的方法,更多是一个动作,它承载了画的方法(比如drawLine,drawCircle等),将内容画到Bitmap中,所以其实就能看到Canvas的构造函数中,就有一个参数是Bitmap,其实可以把他理解成给Bitmap提供一个画手(Canvas),通过Canvas就能画出我们想要的。