j9九游会登陆--首页直达

Android-自界说ProgressBar完成圆弧进度条
  • 智网科技
  • ###
  • 分类: 履历之谈
  • 阅读量: 191

承继于ProgressBar完成,保存了Progressbar的特征

205088-6555c804b693507c.gif

参数


name format description
borderWidth integer 圆弧边框的宽度
progressStyle tick/arc 进度条范例,tick为带刻度的
radius integer 半径
arcbgColor color 圆弧的边框配景
degree integer 弧度,设置为0即为圆形进度条,180为半圆
tickWidth integer 刻度的宽度
tickDensity integer 刻度的密度  2~8 越小越密
bgShow boolean 能否表现圆弧边框配景
arcCapRound boolean 圆弧的笔触能否为圆形,tick有效

interface

提供了绘制圆弧两头地区的一个接口 ,可依据本人的需求自在绘制
 

1
2
3
4
5
6
7
8
9
10
11
12
/**
   * 
   * @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

Use 
      

1
2
3
4
5
6
7
8
9
 mProgress.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'
}