代码改变世界

画画板案例

2017-07-08 14:32  烈'焰  阅读(212)  评论(0编辑  收藏  举报

全局变量

1.首先找一个白色的背景图片作为画板背景  并且在布局中定义好  ImageView

2.找到控件

3.利用工厂模式调用decodeResource()方法得到原图

 4.获取原图的副本因为原图系统是不允许修改的

利用Bitmap调用createBitmap()方法   你可以把它理解为白色的画纸 因为获取副本实际就是重新绘画一个新的

通过上面的方法我们获得了画纸 下面我们在得到我们的画笔 new Paint() 得到画笔

 

现在画笔有了 还少一个画板,并且把我们的画纸要固定在画板上 画板为Canvas()方法

下面我们开始利用drawBitmap()作画

第一个参数为样板 将原图作为样板 第二个利用矩阵函数画 ,3是用我们的画笔。

下面 我们添加触摸事件调用 .setOnTouchListener(new OnTouchListener())
并且进行判断
MotionEvent.ACTION_DOWN:表示点击了画板 获取开始位置在这里获取
statrX = (int) event.getX();
statrY = (int) event.getY();


MotionEvent.ACTION_MOVE: 表示移动连续的获取结束位置
int stopX = (int) event.getX();
int stopY = (int) event.getY();


获取一个结束位置就显现出来 多个结束位置就组成了线
canvas.drawLine(statrX,statrY,stopX,stopY,paint);
还要及时更新起始点
statrX = stopX;
statrY = stopY;


MotionEvent.ACTION_UP:表示不再点击了


图像处理和上面一样先获取副本,处理副本。处理的时候在作画之后显示之前处理

 


break;
}
return true;
}
});