ArcSeekBar

May 14, 2025 · View on GitHub

MavenCentral JitPack CI Download API License

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

ArcSeekBar 是基于 CircleProgressView 修改而来的库。 但青出于蓝而胜于蓝,所以 CircleProgressView 的大部分用法,ArcSeekBar 基本都支持,而且 ArcSeekBar 支持的功能点更多,可配置的参数更细致。

之所以创建一个 ArcSeekBar 而非直接修改 CircleProgressView ,主要是因为 CircleProgressView 中并不涉及 SeekBar 的场景。 还有一个原因是 ArcSeekBarCircleProgressView 的实现效果存在不同点;至于到底应该用 CircleProgressView 还是 ArcSeekBar,你可以根据需要去选择更符合自己需求的。

效果展示

Image

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

引入

Gradle:

  1. 在Project的 build.gradlesetting.gradle 中添加远程仓库

    repositories {
        //...
        mavenCentral()
    }
    
  2. 在Module的 build.gradle 中添加依赖项

    implementation 'com.github.jenly1314:arcseekbar:1.2.0'
    

使用

ArcSeekBar自定义属性说明(进度默认为渐变色)

属性值类型默认值说明
arcStrokeWidthdimension12dp画笔描边的宽度(v1.2.0已废弃,改用arcNormalStrokeWidtharcProgressStrokeWidth
arcNormalStrokeWidthdimension12dp弧形正常画笔描边的宽度(v1.2.0新增)
arcProgressStrokeWidthdimension12dp弧形进度条画笔描边的宽度(v1.2.0新增)
arcStrokeCapenumROUND画笔的线冒样式
arcNormalColorcolor#FFC8C8C8弧形正常颜色
arcProgressColorcolor#FF4FEAAC弧形进度颜色
arcStartAngleinteger270开始角度,默认十二点钟方向
arcSweepAngleinteger360扫描角度范围
arcMaxinteger100进度最大值
arcProgressinteger0当前进度
arcDurationinteger500动画时长
arcLabelTextstring中间的标签文本,默认自动显示百分比
arcLabelTextColorcolor#FF333333文本字体颜色
arcLabelTextSizedimension30sp文本字体大小
arcLabelPaddingTopdimension0dp文本居顶边内间距
arcLabelPaddingBottomdimension0dp文本居底边内间距
arcLabelPaddingLeftdimension0dp文本居左边内间距
arcLabelPaddingRightdimension0dp文本居右边内间距
arcShowLabelbooleantrue是否显示文本
arcShowTickbooleantrue是否显示环刻度
arcTickStrokeWidthdimension10dp刻度画笔宽度
arcTickPaddingdimension2dp环刻度与环间距
arcTickSplitAngleinteger5刻度间隔的角度大小
arcBlockAngleinteger1刻度的角度大小
arcTickOffsetAngleinteger0刻度偏移的角度大小
arcThumbStrokeWidthdimension10dp拖动按钮画笔宽度
arcThumbColorcolor#FFE8D30F拖动按钮颜色
arcThumbRadiusdimension8dp拖动按钮半径
arcThumbRadiusEnlargesdimension2dp触摸时按钮半径放大量
arcShowThumbbooleantrue是否显示拖动按钮
arcThumbDrawablereference拖动按钮图片(arcThumbDrawable的优先级高于arcThumbColor)
arcAllowableOffsetsdimension10dp触摸时可偏移距离:偏移量越大,触摸精度越小
arcEnabledDragbooleantrue是否启用通过拖动改变进度
arcEnabledSinglebooleantrue是否启用通过点击改变进度

示例

布局示例

    <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.setProgressColor(color);

    // 设置进度
    arcSeekBar.setProgress(progress);

    // 显示进度动画(进度,动画时长)
    arcSeekBar.showAnimation(80,3000);


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

相关推荐

  • CircleProgressView 一个圆形的进度动画控件,动画效果纵享丝滑。
  • SpinCounterView 一个类似码表变化的旋转计数器动画控件。
  • CounterView 一个数字变化效果的计数器视图控件。
  • RadarView 一个雷达扫描动画后,然后展示得分效果的控件。
  • SuperTextView 一个在TextView的基础上扩展了几种动画效果的控件。
  • LoadingView 一个圆弧加载过渡动画,圆弧个数,大小,弧度,渐变颜色,完全可配。
  • WaveView 一个水波纹动画控件视图,支持波纹数,波纹振幅,波纹颜色,波纹速度,波纹方向等属性完全可配。
  • GiftSurfaceView 一个适用于直播间送礼物拼图案的动画控件。
  • FlutteringLayout 一个适用于直播间点赞桃心飘动效果的控件。
  • DragPolygonView 一个支持可拖动多边形,支持通过拖拽多边形的角改变其形状的任意多边形控件。
  • DrawBoard 一个自定义View实现的画板;方便对图片进行编辑和各种涂鸦相关操作。
  • compose-component 一个Jetpack Compose的组件库;主要提供了一些小组件,便于快速使用。

版本日志

v1.2.0 2025-2-7

  • 新增属性:arcNormalStrokeWidtharcProgressStrokeWidth(废弃属性:arcStrokeWidth
  • 修复BUG:最大值多次动态变化后,会影响到进度拖动问题。(#14
  • 优化细节

查看更多版本日志


footer