DrawBoard 是一个自定义 View 实现的画板;方便对图片进行各种编辑或涂鸦相关操作

Posted Wei_Leng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DrawBoard 是一个自定义 View 实现的画板;方便对图片进行各种编辑或涂鸦相关操作相关的知识,希望对你有一定的参考价值。

DrawBoard

项目地址:jenly1314/DrawBoard 

简介: :art: DrawBoard 是一个自定义 View 实现的画板;方便对图片进行各种编辑或涂鸦相关操作 更多:作者   提 Bug    标签:

       

DrawBoard 是一个自定义 View 实现的画板;方便对图片进行各种编辑或涂鸦相关操作。

  • 主要支持的一些操作:撤销、恢复、清空、缩放
  • 主要支持的绘制模式:画路径、画点、画直线、画矩形、画椭圆、画圆、画文字、画图片、橡皮擦

Gif 展示

你也可以直接下载 演示 App 体验效果

DrawBoardView 自定义属性说明

属性属性类型默认值属性说明
dbvMinZoomfloat1.0支持最小的放大倍数
dbvMaxZoomfloat4.0支持最大的放大倍数
dbvFitbooleantrue是否自适应
dbvDrawEnabledbooleantrue是否启用绘图
dbvZoomEnabledbooleantrue是否启用缩放
dbvShowTouchPointbooleantrue是否显示触摸点
android:srcdrawable设置图片(画板背景图层)
dbvPaintColorcolor#FFFF0000画笔的颜色
dbvTouchPointColorcolor#AFCCCCCC触摸点的颜色
dbvDrawTextSizedimension15sp绘制文本的字体大小
dbvDrawTextBoldbooleanfalse绘制文本是否是粗体
dbvDrawTextUnderlinebooleanfalse绘制文本是否需要下划线
dbvTouchTolerancefloat4.0触摸时允许的容差值
dbvTouchPointRatiofloat1.2触摸点的比例

引入

Gradle:

  1. 在 Project 的 build.gradle 里面添加远程仓库
allprojects 
    repositories 
        //...
        mavenCentral()
    

  1. 在 Module 的 build.gradle 里面添加引入依赖项 ```gradle implementation 'com.github.jenly1314:drawboard:1.0.1'

## 示例

布局示例
```xml

    <com.king.drawboard.view.DrawBoardView
        android:id="@+id/drawBoardView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

主要支持的绘制模式


/**
 * 绘制路径
 */
DrawMode.DRAW_PATH
/**
 * 绘制点
 */
DrawMode.DRAW_POINT
/**
 * 绘制线
 */
DrawMode.DRAW_LINE
/**
 * 绘制矩形
 */
DrawMode.DRAW_RECT
/**
 * 绘制椭圆
 */
DrawMode.DRAW_OVAL
/**
 * 绘制圆
 */
DrawMode.DRAW_CIRCLE
/**
 * 绘制文本
 */
DrawMode.DRAW_TEXT
/**
 * 绘制图片
 */
DrawMode.DRAW_BITMAP
/**
 * 橡皮擦
 */
DrawMode.ERASER
/**
 * 如设置绘制模式为:DrawMode.DRAW_PATH
 */
drawBoardView.setDrawMode(DrawMode.DRAW_PATH)

主要的一些操作方法

/**
 * 撤销一步
 */
drawBoardView.undo()
/**
 * 恢复一步
 */
drawBoardView.redo()
/**
 * 清除画布
 */
drawBoardView.clear()
/**
 * 改变绘制模式
 */
drawBoardView.setDrawMode(drawMode)
/**
 * 设置画笔颜色
 */
drawBoardView.setPaintColor(paintColor)
/**
 * 设置画笔线条描边宽度
 */
drawBoardView.setLineStrokeWidth(lineStrokeWidth)
/**
 * 设置图片(画板背景图层)
 */
drawBoardView.setImageBitmap(bitmap)
/**
 * 获取图片(画板背景图层和画板图层合并后的图片)
 */
drawBoardView.getImageBitmap()

更多使用详情,请查看Demo中的源码使用示例或直接查看API 帮助文档

版本记录

v1.0.1:2022-2-17

  • 对外提供更多 Paint 相关配置

v1.0.0:2021-11-30

  • DrawBoard 初始版本

以上是关于DrawBoard 是一个自定义 View 实现的画板;方便对图片进行各种编辑或涂鸦相关操作的主要内容,如果未能解决你的问题,请参考以下文章

自定义view

android自定义View全解

自定义View--滚动View

自定义View实现钟摆效果进度条PendulumView

Android自定义View之仿QQ侧滑菜单实现

自定义View--一个简单地圆形Progress效果