美文网首页安卓开发
安卓自定义view画图:三角形,圆形,方形,扇形,弧线

安卓自定义view画图:三角形,圆形,方形,扇形,弧线

作者: 蓝不蓝编程 | 来源:发表于2020-09-21 09:07 被阅读0次

    效果图

    主要代码

     /**
         * 画矩形
         */
        private fun drawRect(canvas: Canvas, isFilled: Boolean = true) {
            setPaintStyle(isFilled)
            canvas.drawRect(0f, 0f, width.toFloat(), height.toFloat(), paint)
        }
    /**
         * 画圆形
         */
        private fun drawCircle(canvas: Canvas, isFilled: Boolean = true) {
            setPaintStyle(isFilled)
            canvas.drawCircle(
                width.toFloat() / 2,
                height.toFloat() / 2,
                min(width, height).toFloat() / 2,
                paint
            )
        }
    /**
         * 画三角形
         */
        private fun drawTriangle(canvas: Canvas, isFilled: Boolean = true) {
            setPaintStyle(isFilled)
            path.moveTo(width.toFloat() / 2, 0f)
            path.lineTo(width.toFloat(), height.toFloat())
            path.lineTo(0f, height.toFloat())
            path.close()
            canvas.drawPath(path, paint)
        }
     /**
         * 画扇形
         */
        private fun drawSector(canvas: Canvas, isFilled: Boolean = true) {
            setPaintStyle(isFilled)
            val rectF = RectF(0f, 0f, width.toFloat(), height.toFloat())
            canvas.drawArc(rectF, 30f, 120f, true, paint)
        }
    /**
         * 画圆弧
         */
        private fun drawArc(canvas: Canvas) {
            setPaintStyle(false)
            val rectF = RectF(0f, 0f, width.toFloat() - strokeWidth, height.toFloat() - strokeWidth)
            canvas.drawArc(rectF, 30f, 120f, false, paint)
        }
    

    完整源代码

    https://gitee.com/cxyzy1/my-painter

    相关文章

      网友评论

        本文标题:安卓自定义view画图:三角形,圆形,方形,扇形,弧线

        本文链接:https://www.haomeiwen.com/subject/gwltektx.html