您的位置:首页 > 移动开发 > Android开发

Android学习记录:Paint,Canvas和Bitmap

2015-09-22 13:12 399 查看
在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用来判断是否已经创立画布。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: