栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

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

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

一、简介

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

这篇带大家实现一个最简单的画板,前提是需要对自定义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
  }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/155215.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号