本篇内容主要讲解“Android中怎么实现基本画笔功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android中怎么实现基本画笔功能”吧!
成都创新互联公司是一家专业提供仓山企业网站建设,专注与网站建设、网站制作、HTML5建站、小程序制作等业务。10年已为仓山众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。
一、简介
带大家实现一个最简单的画板,前提是需要对自定义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中怎么实现基本画笔功能”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!