@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//畫背景圓環(huán)
int center = getWidth() / 2;
float radius = center - roundWidth / 2;
paint.setColor(roundColor);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(roundWidth); // 圓環(huán)的寬度
paint.setAntiAlias(true);
canvas.drawCircle(center,center,radius,paint);
// 畫進度百分比
paint.setColor(textColor);
paint.setStrokeWidth(0);
paint.setTextSize(textSize);
paint.setTypeface(Typeface.DEFAULT_BOLD);
int percent = (int)(progress / (float)max * 100);
String strPercent = percent + "%";
Paint.FontMetricsInt fm = paint.getFontMetricsInt();
if(percent != 0){
canvas.drawText(strPercent, getWidth() / 2 - paint.measureText(strPercent) / 2 ,
getWidth() / 2 +(fm.bottom - fm.top)/2 - fm.bottom, paint);
}
// 畫圓弧
RectF oval = new RectF(center - radius, center - radius,
center + radius, center + radius);
paint.setColor(roundProgressColor);
paint.setStrokeWidth(roundWidth);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeCap(Paint.Cap.ROUND);
canvas.drawArc(oval, 0 , 360 * progress / max, false, paint);
}
public void setProgress(int progress){
if(progress < 0 ){
throw new IllegalArgumentException("進度Progress不能小于0");
}
if(progress > max){
progress = max;
}
if(progress <= max){
this.progress = progress;
postInvalidate();
}
}
圓形進度條實現方案
?著作權歸作者所有,轉載或內容合作請聯系作者
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來榛丢,“玉大人铲球,你說我怎么就攤上這事∥蓿” “怎么了稼病?”我有些...
- 正文 為了忘掉前任芍瑞,我火速辦了婚禮,結果婚禮上褐墅,老公的妹妹穿的比我還像新娘拆檬。我一直安慰自己,他們只是感情好妥凳,可當我...
- 文/花漫 我一把揭開白布竟贯。 她就那樣靜靜地躺著,像睡著了一般逝钥。 火紅的嫁衣襯著肌膚如雪屑那。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼芒填,長吁一口氣:“原來是場噩夢啊……” “哼呜叫!你這毒婦竟也來了?” 一聲冷哼從身側響起殿衰,我...
- 正文 年R本政府宣布,位于F島的核電站挑势,受9級特大地震影響镇防,放射性物質發(fā)生泄漏。R本人自食惡果不足惜潮饱,卻給世界環(huán)境...
- 文/蒙蒙 一来氧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧香拉,春花似錦啦扬、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至证鸥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間勤晚,已是汗流浹背枉层。 一陣腳步聲響...
推薦閱讀更多精彩內容
- 1疲眷、重寫UITextField子類的drawRect方法 - (void)drawRect:(CGRect)rec...