Skip to content

Commit

Permalink
发布v1.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
jenly1314 committed Mar 18, 2024
1 parent 099a5f4 commit 4b35542
Show file tree
Hide file tree
Showing 32 changed files with 1,256 additions and 615 deletions.
4 changes: 2 additions & 2 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ orbs:

jobs:
build:
executor: android/android

docker:
- image: cimg/android:2023.08
steps:
- checkout
- run:
Expand Down
89 changes: 59 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,14 @@
[![Download](https://img.shields.io/badge/download-App-blue.svg)](https://raw.githubusercontent.com/jenly1314/DrawBoard/master/app/release/app-release.apk)
[![MavenCentral](https://img.shields.io/maven-central/v/com.github.jenly1314/drawboard)](https://repo1.maven.org/maven2/com/github/jenly1314/drawboard)
[![JitPack](https://jitpack.io/v/jenly1314/DrawBoard.svg)](https://jitpack.io/#jenly1314/DrawBoard)
[![CI](https://travis-ci.com/jenly1314/DrawBoard.svg?branch=master)](https://app.travis-ci.com/github/jenly1314/DrawBoard)
[![CircleCI](https://circleci.com/gh/jenly1314/DrawBoard.svg?style=svg)](https://circleci.com/gh/jenly1314/DrawBoard)
[![API](https://img.shields.io/badge/API-21%2B-blue.svg?style=flat)](https://android-arsenal.com/api?level=21)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/mit-license.php)

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

* 主要支持的一些操作:撤销、恢复、清空、缩放
* 主要支持的绘制模式:画路径、画点、画直线、画矩形、画椭圆、画圆、画文字、画图片、橡皮擦
DrawBoard 是一个自定义 View实现的画板;方便对图片进行编辑和各种涂鸦相关操作。

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

## Gif 展示
![Image](GIF.gif)
Expand All @@ -37,27 +35,36 @@ DrawBoard 是一个自定义 View实现的画板;方便对图片进行各种
2. 在Module的 **build.gradle** 里面添加引入依赖项
```gradle
implementation 'com.github.jenly1314:drawboard:1.0.1'
implementation 'com.github.jenly1314:drawboard:1.1.0'
```
## 使用
### DrawBoardView自定义属性说明
| 属性 | 属性类型 | 默认值 | 属性说明 |
| :------| :------ | :------ | :------ |
| dbvMinZoom | float |1.0| 支持最小的放大倍数 |
| dbvMaxZoom | float |4.0| 支持最大的放大倍数 |
| dbvFit | boolean |true| 是否自适应 |
| dbvDrawEnabled | boolean |true| 是否启用绘图 |
| dbvZoomEnabled | boolean |true| 是否启用缩放 |
| dbvShowTouchPoint | boolean |true| 是否显示触摸点 |
| android:src | drawable | | 设置图片(画板背景图层) |
| dbvPaintColor | color |<font color=#FF0000>#FFFF0000</font>| 画笔的颜色 |
| dbvTouchPointColor | color |<font color=#CCCCCC>#AFCCCCCC</font>| 触摸点的颜色 |
| dbvDrawTextSize | dimension | 15sp | 绘制文本的字体大小 |
| dbvDrawTextBold | boolean | false | 绘制文本是否是粗体 |
| dbvDrawTextUnderline | boolean | false | 绘制文本是否需要下划线 |
| dbvTouchTolerance | float | 4.0 | 触摸时允许的容差值 |
| dbvTouchPointRatio | float | 1.2 | 触摸点的比例 |
| 属性 | 属性类型 | 默认值 | 属性说明 |
| :------|:----------|:-------------------------------------|:--------------|
| dbvMinZoom | float | 1.0 | 支持最小的放大倍数 |
| dbvMaxZoom | float | 4.0 | 支持最大的放大倍数 |
| dbvFit | boolean | true | 是否自适应 |
| dbvDrawEnabled | boolean | true | 是否启用绘图 |
| dbvZoomEnabled | boolean | true | 是否启用缩放 |
| dbvShowTouchPoint | boolean | true | 是否显示触摸点 |
| dbvShowSelectedBox | boolean | false | 是否显示选中框 |
| android:src | drawable | | 设置源图片(画板背景图层) |
| dbvPaintColor | color | <font color=#FF0000>#FFFF0000</font> | 画笔的颜色 |
| dbvSelectedBoxColor | color | <font color=#FF0000>#AFFF0000</font> | 选中框颜色 |
| dbvTouchPointColor | color | <font color=#CCCCCC>#AFCCCCCC</font> | 触摸点的颜色 |
| dbvLineStrokeWidth | dimension | 2dp | 画笔线条笔划宽度 |
| dbvSelectedStrokeWidth | dimension | 1dp | 选中时边框笔划宽度 |
| dbvEraserStrokeWidth | dimension | 10dp | 橡皮擦笔划宽度 |
| dbvMosaicStrokeWidth | dimension | 10dp | 马赛克比笔划宽度 |
| dbvZoomPointStrokeWidth | dimension | 6dp | 缩放点笔划宽度 |
| dbvDrawTextSize | dimension | 15sp | 绘制文本的字体大小 |
| dbvDrawTextBold | boolean | false | 绘制文本是否是粗体 |
| dbvDrawTextUnderline | boolean | false | 绘制文本是否需要下划线 |
| dbvTouchTolerance | float | 4.0 | 触摸时允许的容差值 |
| dbvTouchPointRatio | float | 1.2 | 触摸点的比例 |
| dbvDrawLineArrow | boolean | false | 绘制直线时是否带箭头 |
| dbvLineArrowSize | dimension | 6dp | 绘制直线时的箭头大小 |
### 示例
Expand All @@ -71,7 +78,6 @@ DrawBoard 是一个自定义 View实现的画板;方便对图片进行各种
```


主要支持的绘制模式
```kotlin

Expand Down Expand Up @@ -111,8 +117,13 @@ DrawMode.DRAW_BITMAP
* 橡皮擦
*/
DrawMode.ERASER
/**
* 马赛克
*/
DrawMode.MOSAIC

```
> 如果以上操作不完全满足你的需求,`DrawBoard`对外还提供了很多可定制化的配置(例如:自定义实现一个 [**Draw**](drawboard/src/main/java/com/king/drawboard/draw/Draw.java))。
```kotlin
/**
Expand All @@ -121,7 +132,7 @@ DrawMode.ERASER
drawBoardView.setDrawMode(DrawMode.DRAW_PATH)
```

主要的一些操作方法
主要常用的一些方法
```kotlin
/**
* 撤销一步
Expand All @@ -144,30 +155,48 @@ drawBoardView.setDrawMode(drawMode)
*/
drawBoardView.setPaintColor(paintColor)
/**
* 设置画笔线条描边宽度
* 设置画笔线条笔划宽度
*/
drawBoardView.setLineStrokeWidth(lineStrokeWidth)
/**
* 设置橡皮擦笔划宽度
*/
drawBoardView.setEraserStrokeWidth(eraserStrokeWidth)
/**
* 设置马赛克笔划宽度
*/
drawBoardView.setMosaicStrokeWidth(mosaicStrokeWidth)
/**
* 通过代码进行绘制
*/
drawBoardView.draw(draw)
/**
* 设置图片(画板背景图层)
*/
drawBoardView.setImageBitmap(bitmap)
/**
* 获取图片(画板背景图层和画板图层合并后的图片)
* 获取结果图片(画板背景图层和画板图层合并后的图片)
*/
drawBoardView.getImageBitmap()
drawBoardView.getResultBitmap()

```

更多使用详情,请查看[Demo](app)中的源码使用示例或直接查看[API帮助文档](https://jitpack.io/com/github/jenly1314/DrawBoard/latest/javadoc/)


## 版本记录

#### v1.1.0:2024-3-18
* 新增支持绘制马赛克
* 绘制直线时,支持带箭头
* 绘制图片或文字时,支持选中再次移动(限最近一次操作)
* 对外提供更多绘制相关配置
* 更新Gradle至v7.5

#### v1.0.1:2022-2-17
* 对外提供更多Paint相关配置
* 对外提供更多Paint相关配置

#### v1.0.0:2021-11-30
* DrawBoard初始版本
* DrawBoard初始版本

## 赞赏
如果你喜欢DrawBoard,或感觉DrawBoard帮助到了你,可以点右上角“Star”支持一下,你的支持就是我的动力,谢谢 :smiley:
Expand Down
22 changes: 11 additions & 11 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,46 +4,46 @@ plugins {
}

android {
compileSdkVersion build_versions.compileSdk
buildToolsVersion build_versions.buildTools
namespace 'com.king.drawboard.app'
compileSdk build_versions.compileSdk

defaultConfig {
applicationId "com.king.drawboard.app"
minSdkVersion build_versions.minSdk
targetSdkVersion build_versions.targetSdk
minSdk build_versions.minSdk
targetSdk build_versions.targetSdk
versionCode app_version.versionCode
versionName app_version.versionName

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}

kotlinOptions {
jvmTarget = '1.8'
jvmTarget = JavaVersion.VERSION_1_8.toString()
}

buildFeatures {
viewBinding true
}

lintOptions {
lint {
abortOnError false
warning 'InvalidPackage'
}
}

dependencies {

implementation "org.jetbrains.kotlin:kotlin-stdlib:$versions.kotlin"
implementation "androidx.core:core-ktx:$versions.coreKtx"
implementation "androidx.appcompat:appcompat:$versions.appcompat"
implementation "com.google.android.material:material:$versions.material"
Expand Down
Binary file modified app/release/app-release.apk
Binary file not shown.
10 changes: 6 additions & 4 deletions app/release/output-metadata.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": 2,
"version": 3,
"artifactType": {
"type": "APK",
"kind": "Directory"
Expand All @@ -10,9 +10,11 @@
{
"type": "SINGLE",
"filters": [],
"versionCode": 2,
"versionName": "1.0.1",
"attributes": [],
"versionCode": 3,
"versionName": "1.1.0",
"outputFile": "app-release.apk"
}
]
],
"elementType": "File"
}
3 changes: 1 addition & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.king.drawboard.app">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

<application
android:allowBackup="true"
Expand Down
Loading

0 comments on commit 4b35542

Please sign in to comment.