一、简介
这是画板系列的第一篇,一步步开始,从简单的画板,到功能稍微齐全一点的画板,例如基本画笔、橡皮擦、背景、文字、撤销、反撤销、保存等
这篇带大家实现一个最简单的画板,前提是需要对自定义view有一定的了解。
用的是kotlin语言
二、实现
分析如何实现: 定义了画笔和path,然后在触摸屏幕的时候,手指一边移动一边进行path的滑动,绘制。这就完成了一个最简单的画笔功能。
下面几十行代码完成这个
class tpview(context: context,attr:attributeset ) : view(context,attr) { private var prex: float = 0.0f //上一次的触摸点x坐标 private var prey: float = 0.0f //上一次触摸点y坐标 var mpath = path() //path路径 //画笔 private var mpaint = paint(paint.anti_alias_flag or paint.dither_flag) init { //画笔为实心 mpaint.style = paint.style.stroke //颜色 mpaint.color = color.red //笔触为圆形 mpaint.strokecap = paint.cap.round //画笔大小 mpaint.strokewidth = 10f //view的背景颜色 setbackgroundcolor(color.white) } override fun ondraw(canvas: canvas) { super.ondraw(canvas) //画线 canvas.drawpath(mpath,mpaint) } override fun ontouchevent(event: motionevent): boolean { when(event.action){ motionevent.action_down -> { //手指按下的时候 //将起始点移动到当前坐标 mpath.moveto(event.x,event.y) //记录上次触摸的坐标,注意action_down方法只会执行一次 prex = event.x prey = event.y } motionevent.action_move -> { //手指移动的时候 //绘制圆滑曲线,即贝塞尔曲线,贝塞尔曲线这个知识自行了解 mpath.quadto(prex,prey,event.x,event.y) prex = event.x prey = event.y } } //重新绘制,会调用ondraw方法 invalidate() return true } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。
如对本文有疑问, 点击进行留言回复!!
监听Android系统发出的插入SD卡并且已正确安装(识别)时发出的广播
RecyclerView三种常用效果的实现方法-android-kotlin
Android Studio app启动错误 Error running :Default Activity not found
Android Studio查看源码时出现Sources for ‘Android API 30 Platform’ not found 的 解决方法
网友评论