自定义view————涂鸦画板
今天给大家带来一个特别有意思的自定义view—涂鸦,先看看效果
效果看了,挺好玩吧,其实就是利用万能的Path来画路径,颜色,画笔大小,就是一些设置,废话不多说,直接上真家伙
触摸事件处理
这里的触摸事件主要有按下(MotionEvent.ACTION_DOWN)、移动(MotionEvent.ACTION_MOVE)、抬起(MotionEvent.ACTION_UP),需要对其分别做相应的处理
触摸事件处理方法
按下(MotionEvent.ACTION_DOWN)后执行的touch_start(x, y);
移动(MotionEvent.ACTION_MOVE)后执行的touch_move(x, y);
抬起(MotionEvent.ACTION_UP)后执行的touch_up();
然后看一下onDraw
|
|
整个过程走完了,接下来就来考虑一下其他过程
撤销、恢复、重做三个操作
撤销操作
恢复操作
重做操作
|
|
初始化相关
样式相关修改
|
|
到此为止,涂鸦的效果有了,实际项目中都是对一个照片进行涂鸦操作,因此添加照片进行再次封装,达到实际项目中的那种效果
添加照片进行涂鸦
利用组合自定义view,结合上面的TabletView和ImageView来到实际项目效果
xml布局
继承FrameLayout,在onFinishInflate()中添加view
获得TabletView去执行相关操作
设置照片的方法,实际项目中可利用照片、相册选择照片返回设置
|
|
保存照片,这里的权限问题根据6.0、7.0、8.0得设置,可以参考其他的权限讲解
|
|
代码中应用
xml布局
|
|
java代码