ArcSeekBar¶
ArcSeekBar for Android 是一个弧形的拖动条进度控件,配置参数完全可定制化。
ArcSeekBar 是基于 CircleProgressView 修改而来的库。 但青出于蓝而胜于蓝,所以 CircleProgressView 的大部分用法,ArcSeekBar 基本都支持,而且可配置的参数更细致。
之所以新造一个ArcSeekBar库,而不直接在 CircleProgressView 上面直接改,原因是 CircleProgressView 里面的部分动画效果对于 SeekBar 并不适用,所以 ArcSeekBar 是在 CircleProgressView 的基础上有所删减后,而再进行扩展增强的。 实际还需根据具体的需求而选择适合的。
Gif 展示¶
你也可以直接下载 演示App 体验效果
引入¶
Gradle:¶
-
在Project的 build.gradle 或 setting.gradle 中添加远程仓库
repositories { //... mavenCentral() }
-
在Module的 build.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 | 是否启用通过点击改变进度 |
示例¶
布局示例
<com.king.view.arcseekbar.ArcSeekBar
android:id="@+id/arcSeekBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:arcEnabledDrag="true"/>
代码示例
//进度改变监听
arcSeekBar.setOnChangeListener(listener);
//设置进度
arcSeekBar.setProgress(progress);
//显示进度动画(进度,动画时长)
arcSeekBar.showAnimation(80,3000);
相关推荐¶
- CircleProgressView 一个圆形的进度动画控件,动画效果纵享丝滑。