在前面的章节中,我们已经介绍了Canvas的一些基本操作,今天我们继续讲解,Canvas类的用法,可见这个类在自定义View中是多么的重要。今天我们来着重介绍一下如何绘制图片和文字。在这一章节学习之后我们基本上对于一些简单的自定义View就可以搞定了。但是这仅仅是刚刚开始,我还会继续带领大家深入的学习下去,做出更多更炫酷的自定义控件出来。
第一、drawPicture绘制图片
上面是官网中提供的此类的方法,beginRecording()意思为开始录制,什么意思呢。看一段官网的解释再说:To record a picture, call beginRecording() and then draw into the Canvas that is returned. Nothing we appear on screen, but all of the draw commands (e.g. drawRect(Rect, Paint)
) will be recorded. To stop recording, call endRecording(). After endRecording() the Canvas that was returned must no longer be used, and nothing should be drawn into it.意思是此方法开始记录一幅画,就是canvas的操作。直到endRecording()方法的调用,结束录制。注意:endRecording()调用之后此画布必须保证不再使用。什么意思呢,我们可以通俗的理解为,此方法的操作是可以记录一个画布,然后重复的使用,每次使用都是和上一次一样的。是不是这样可以大大减少我们的内存开支,只要首次加载的时候绘制一遍,之后每次都使用记录的内容就可以。后面是getHeight和getWidth两个方法,获取宽和高很简单就不说了。最后一个输出流,可以看到在API18之后已经废弃了,就先不考虑了。
第二、Picture的使用步骤
1、初始化对象
//第一步创建Picture
private Picture mPicture = new Picture();
2、录制画布的操作
//开始录制绘制的内容 private void recording(){ //开始录制图片,返回一个canvas,此canvas