首页 > 系统 > Android > 正文

Android画板开发之基本画笔功能

2019-10-21 21:32:37
字体:
来源:转载
供稿:网友

一、简介

这是画板系列的第一篇,一步步开始,从简单的画板,到功能稍微齐全一点的画板,例如基本画笔、橡皮擦、背景、文字、撤销、反撤销、保存等

这篇带大家实现一个最简单的画板,前提是需要对自定义View有一定的了解。

用的是kotlin语言

Android,画板,画笔

二、实现

分析如何实现: 定义了画笔和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开发频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表