Android-自界说ProgressBar完成圆弧进度条
- 智网科技
- ###
- 分类: 履历之谈
- 阅读量: 191
承继于ProgressBar完成,保存了Progressbar的特征
参数
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'
}