canvas教程

Android学习记录:Paint,Canvas和Bitmap

字号+ 作者:H5之家 来源:H5之家 2015-11-11 10:43 我要评论( )

在Java中,利用过双缓冲技术,先将画笔画在内存上,再转化为图片,调出来。当画的东西过多造成处理不过来时,双缓冲技术将防止闪屏。在Paint方法

Android学习记录:Paint,Canvas和Bitmap

Android学习记录:Paint,Canvas和Bitmap,有需要的朋友可以参考下。


在Java中,利用过双缓冲技术,先将画笔画在内存上,再转化为图片,调出来。
当画的东西过多造成处理不过来时,双缓冲技术将防止闪屏。
在Paint方法下,我们这样写:

BufferedImage tmp = new BufferedImage(1200, 900, BufferedImage.TYPE_INT_ARGB); Graphics g2 = tmp.createGraphics();

利用g2来绘图,然后再将tmp画在g上面

g.drawImage(tmp, 0, 0, this);

在安卓中,我们也利用类似的思维。
其中Bitmap类似于BufferedImage,Canvas类似于Graphics,而paint则类似于画笔,原来是在Graphics下直接设置颜色,而现在则需要在paint下设置颜色,并在Canvas绘制传参时加入paint。

public boolean onTouch(View v, MotionEvent event) { //获取当前时间的动作 if(flag == 0){ bitmap = Bitmap.createBitmap(iv.getWidth(),iv.getHeight(), Bitmap.Config.ARGB_8888); flag = 1; } canvas = new Canvas(bitmap); int action = event.getAction(); switch(action){ case MotionEvent.ACTION_DOWN:{ a = event.getX(); b = event.getY(); }break; case MotionEvent.ACTION_UP:{ c = event.getX(); d = event.getY(); canvas.drawLine(a,b,c,d, paint); }break; } canvas.drawBitmap(bitmap, 0,0, paint); iv.setImageBitmap(bitmap); return true; }

其中flag用来判断是否已经创立画布。

版权声明:本文为博主原创文章,未经博主允许不得转载。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评