我是靠谱客的博主 如意服饰,最近开发中收集的这篇文章主要介绍Android画板开发(一) 基本画笔的实现一、简介二、实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Android画板开发(一) 基本画笔的实现
Android画板开发(二) 橡皮擦实现
Android画板开发(三) 撤销反撤销功能实现
Android画板开发(四) 添加背景和保存画板内容为图片
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
    }
    
}

最后

以上就是如意服饰为你收集整理的Android画板开发(一) 基本画笔的实现一、简介二、实现的全部内容,希望文章能够帮你解决Android画板开发(一) 基本画笔的实现一、简介二、实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部