Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jenly1314/arcseekbar

🎡 ArcSeekBar 一个弧形可拖动进度条控件。弧形大小,弧度,颜色渐变等配置完全可定制化
https://github.com/jenly1314/arcseekbar

android arc arcseekbar circle circleprogressbar circleprogressview circleseekbar progressbar progressview seekbar

Last synced: about 21 hours ago
JSON representation

🎡 ArcSeekBar 一个弧形可拖动进度条控件。弧形大小,弧度,颜色渐变等配置完全可定制化

Awesome Lists containing this project

README

        

# ArcSeekBar

[![Download](https://img.shields.io/badge/download-App-blue.svg)](https://raw.githubusercontent.com/jenly1314/ArcSeekBar/master/app/release/app-release.apk)
[![MavenCentral](https://img.shields.io/maven-central/v/com.github.jenly1314/arcseekbar)](https://repo1.maven.org/maven2/com/github/jenly1314/arcseekbar)
[![JitPack](https://jitpack.io/v/jenly1314/ArcSeekBar.svg)](https://jitpack.io/#jenly1314/ArcSeekBar)
[![CircleCI](https://circleci.com/gh/jenly1314/ArcSeekBar.svg?style=svg)](https://circleci.com/gh/jenly1314/ArcSeekBar)
[![API](https://img.shields.io/badge/API-16%2B-blue.svg?style=flat)](https://android-arsenal.com/api?level=16)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/mit-license.php)

ArcSeekBar for Android 是一个弧形的拖动条进度控件,配置参数完全可定制化。

**ArcSeekBar** 是基于 [CircleProgressView](https://github.com/jenly1314/CircleProgressView) 修改而来的库。
但青出于蓝而胜于蓝,所以 [CircleProgressView](https://github.com/jenly1314/CircleProgressView) 的大部分用法,**ArcSeekBar** 基本都支持,而且可配置的参数更细致。

之所以新造一个ArcSeekBar库,而不直接在 **CircleProgressView** 上面直接改,原因是 **CircleProgressView** 里面的部分动画效果对于 **SeekBar** 并不适用,所以 **ArcSeekBar** 是在 **CircleProgressView** 的基础上有所删减后,而再进行扩展增强的。
实际还需根据具体的需求而选择适合的。

## Gif 展示
![Image](GIF.gif)

> 你也可以直接下载 [演示App](https://raw.githubusercontent.com/jenly1314/ArcSeekBar/master/app/release/app-release.apk) 体验效果

## 引入

### Gradle:
1. 在Project的 **build.gradle** 或 **setting.gradle** 中添加远程仓库

```gradle
repositories {
//...
mavenCentral()
}
```

2. 在Module的 **build.gradle** 里面添加引入依赖项
```gradle
implementation 'com.github.jenly1314:arcseekbar:1.1.1'
```

## 使用

### ArcSeekBar自定义属性说明(进度默认为渐变色)
| 属性 | 值类型 | 默认值 | 说明 |
| :------| :------ |:-------------------------------------|:--------------------------------------------|
| arcStrokeWidth | dimension | 12dp | 画笔描边的宽度 |
| arcStrokeCap | enum | ROUND | 画笔的线冒样式 |
| arcNormalColor | color | #FFC8C8C8 | 弧形正常颜色 |
| arcProgressColor | color | #FF4FEAAC | 弧形进度颜色 |
| arcStartAngle | integer | 270 | 开始角度,默认十二点钟方向 |
| arcSweepAngle | integer | 360 | 扫描角度范围 |
| arcMax | integer | 100 | 进度最大值 |
| arcProgress | integer | 0 | 当前进度 |
| arcDuration | integer | 500 | 动画时长 |
| arcLabelText | string | | 中间的标签文本,默认自动显示百分比 |
| arcLabelTextColor | color | #FF333333 | 文本字体颜色 |
| arcLabelTextSize | dimension | 30sp | 文本字体大小 |
| arcLabelPaddingTop | dimension | 0dp | 文本居顶边内间距 |
| arcLabelPaddingBottom | dimension | 0dp | 文本居底边内间距 |
| arcLabelPaddingLeft | dimension | 0dp | 文本居左边内间距 |
| arcLabelPaddingRight | dimension | 0dp | 文本居右边内间距 |
| arcShowLabel | boolean | true | 是否显示文本 |
| arcShowTick | boolean | true | 是否显示环刻度 |
| arcTickStrokeWidth | dimension | 10dp | 刻度画笔宽度 |
| arcTickPadding | dimension | 2dp | 环刻度与环间距 |
| arcTickSplitAngle | integer | 5 | 刻度间隔的角度大小 |
| arcBlockAngle | integer | 1 | 刻度的角度大小 |
| arcTickOffsetAngle | integer | 0 | 刻度偏移的角度大小 |
| arcThumbStrokeWidth | dimension | 10dp | 拖动按钮画笔宽度 |
| arcThumbColor | color | #FFE8D30F | 拖动按钮颜色 |
| arcThumbRadius | dimension | 8dp | 拖动按钮半径 |
| arcThumbRadiusEnlarges | dimension | 2dp | 触摸时按钮半径放大量 |
| arcShowThumb | boolean | true | 是否显示拖动按钮 |
| arcThumbDrawable | reference | | 拖动按钮图片(arcThumbDrawable的优先级高于arcThumbColor) |
| arcAllowableOffsets | dimension | 10dp | 触摸时可偏移距离:偏移量越大,触摸精度越小 |
| arcEnabledDrag | boolean | true | 是否启用通过拖动改变进度 |
| arcEnabledSingle | boolean | true | 是否启用通过点击改变进度 |

### 示例

布局示例
```Xml

```

代码示例
```Java
//进度改变监听
arcSeekBar.setOnChangeListener(listener);
//设置进度
arcSeekBar.setProgress(progress);
//显示进度动画(进度,动画时长)
arcSeekBar.showAnimation(80,3000);

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

## 相关推荐

- [CircleProgressView](https://github.com/jenly1314/CircleProgressView) 一个圆形的进度动画控件,动画效果纵享丝滑。

## 版本日志

#### v1.1.1:2024-7-17
* 优化细节

#### v1.1.0:2024-6-25
* 新增自定义属性`arcThumbDrawable`
* 优化细节

#### v1.0.3:2021-9-1 (从v1.0.3开始发布至 MavenCentral)
* 对外暴露更多getter和setter方法
* 新增arcTickOffsetAngle属性
* 发布至 **MavenCentral**

#### v1.0.2:2020-12-2
* 优化设置渐变色过程处理

#### v1.0.1:2020-9-16
* 优化细节

#### v1.0.0:2020-3-28
* ArcSeekBar初始版本

## 赞赏
如果您喜欢ArcSeekBar,或感觉ArcSeekBar帮助到了您,可以点右上角“Star”支持一下,您的支持就是我的动力,谢谢 :smiley:

您也可以扫描下面的二维码,请作者喝杯咖啡 :coffee:



## 关于我

| 我的博客 | GitHub | Gitee | CSDN | 博客园 |
|:------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------|
| Jenly's Blog | jenly1314 | jenly1314 | jenly121 | jenly |

## 联系我

| 微信公众号 | Gmail邮箱 | QQ邮箱 | QQ群 | QQ群 |
|:-------------|:---------------------------------------------------------------------------------|:----------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------|
| [Jenly666](http://weixin.qq.com/r/wzpWTuPEQL4-ract92-R) | jenly1314 | jenly1314 | 20867961 | 64020761 |