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用来判断是否已经创立画布。
版权声明:本文为博主原创文章,未经博主允许不得转载。