当前位置:   article > 正文

android 第三方圆弧进度条,Android-自定义ProgressBar实现圆弧进度条

android arcseekbar 虚弧线进度条

继承于ProgressBar实现,保留了Progressbar的特性,源码在文尾。

6736d1d9235781d9cdc80bdfff129a2b.gif

参数nameformatdescriptionborderWidthinteger圆弧边框的宽度

progressStyletick/arc进度条类型,tick为带刻度的

radiusinteger半径

arcbgColorcolor圆弧的边框背景

degreeinteger弧度,设置为0即为圆形进度条,180为半圆

tickWidthinteger刻度的宽度

tickDensityinteger刻度的密度  2~8 越小越密

bgShowboolean是否显示圆弧边框背景

arcCapRoundboolean圆弧的笔触是否为圆形,tick无效

interface

提供了绘制圆弧中间区域的一个接口 ,可根据自己的需求自由绘制/**

*

* @param canvas

* @param rectF  圆弧的Rect

* @param x      圆弧的中心x

* @param y      圆弧的中心y

* @param storkeWidth   圆弧的边框宽度

* @param progress      当前进度

*/

public interface  OnCenterDraw {

public  void draw(Canvas canvas, RectF rectF, float x, float y,float storkeWidth,int progress);

}

默认提供了两个实现

onImageCenter and OnTextCenter

UsemProgress.setOnCenterDraw(new ArcProgress.OnCenterDraw() {            @Override

public void draw(Canvas canvas, RectF rectF, float x, float y, float storkeWidth,int progress) {

Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG);

textPaint.setStrokeWidth(35);

textPaint.setColor(getResources().getColor(R.color.textColor));

String progressStr = String.valueOf(progress+"%");                float textX = x-(textPaint.measureText(progressStr)/2);                float textY = y-((textPaint.descent()+textPaint.ascent())/2);

canvas.drawText(progressStr,textX,textY,textPaint);

}

});

依赖dependencies {

compile 'com.czp.arcProgressBar:ArcProgressBar:1.0.1'

}

写完搜了一下。。。貌似重复造了个轮子。。。

后续补上几个知识点~哇哈啊哈啊

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/474115
推荐阅读
相关标签
  

闽ICP备14008679号