时间:2021-05-19
一、简介
这是画板系列的第一篇,一步步开始,从简单的画板,到功能稍微齐全一点的画板,例如基本画笔、橡皮擦、背景、文字、撤销、反撤销、保存等
这篇带大家实现一个最简单的画板,前提是需要对自定义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 }}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了js+canvas实现画板功能的具体代码,供大家参考,具体内容如下1.实现了画图,改变画笔粗细,改变画笔颜色,清屏功能画板画笔颜色:画笔粗细
Android屏幕手写签名的原理就是把手机屏幕当作画板,把用户手指当作画笔,手指在屏幕上在屏幕上划来划去,屏幕就会显示手指的移动轨迹,就像画笔在画板上写字一样。
取设备句柄方法英文命令:GetHDC 操作系统支持:Windows所属对象:画板语法:整数型画板.取设备句柄()如当前用户程序正在处理本画板所产生的“绘画”事件
画矩形方法英文命令:DrawRect 操作系统支持:Windows所属对象:画板使用画笔在画板上画出一个矩形,矩形的内部使用刷子填充。语法:无返回值画板.画矩形
在现实世界中,我们使用画笔在画板上进行绘画;在html5canvas中,我们同样可以使用canvas的画笔——CanvasRenderi