乙個自定義的圓形進度條

2021-07-10 10:27:10 字數 2488 閱讀 8765

最近在專案總會用到一些圓形進度條,所以就記錄下來 供以後可用

首先新建乙個circleprogressbar 繼承view

import android.content.context;

import android.graphics.canvas;

import android.graphics.color;

import android.graphics.paint;

import android.graphics.rectf;

import android.util.attributeset;

import android.view.view;

/*** created by liwenjie on 2016/3/10 17:22

*/public class circleprogressbar extends view

public circleprogressbar(context context, attributeset attrs)

public circleprogressbar(context context, attributeset attrs, int defstyleattr)

@override

protected void

ondraw(canvas canvas)

paint.setantialias(true);

// 設定畫筆為抗鋸齒

paint.setcolor(color.white

); //

設定畫筆顏色

canvas.drawcolor(color.transparent

); //

白色背景

paint.setstrokewidth(progressstrokewidth);

// 線寬

paint.setstyle(paint.style.stroke

);oval.left = progressstrokewidth / 2

; //

左上角x

oval.top = progressstrokewidth / 2

; //

左上角y

oval.right = width - progressstrokewidth / 2

; //

左下角x

oval.bottom = height - progressstrokewidth / 2

; //

右下角y

canvas.drawarc(oval

, -90

, 360

, false,

paint);

// 繪製白色圓圈,即進度條背景

164, 247)

paint.setcolor(progresscolor);

canvas.drawarc(oval

, -90

, ((float) progress / maxprogress) * 360

,false,

paint);

// 繪製進度圓弧,這裡是藍色

/*以下是在圓圈中間寫字,看情況新增

*//*

paint.setstrokewidth(1);

string text = "√";//progress + "%";

int textheight = height / 2;

paint.settextsize(textheight);

int textwidth = (int) paint.measuretext(text, 0, text.length());

paint.setstyle(paint.style.fill);

canvas.drawtext(text, centre - textwidth / 2, centre + textheight/4,paint);*/

} public int

getmaxprogress()

public void

setmaxprogress(int maxprogress)

public int

getprogress()

public void

setprogress(int progress)

public int

getprogressstrokewidth()

public void

setprogressstrokewidth(int progressstrokewidth)

/*** 非ui執行緒呼叫

*/public void

setprogressnotinuithread(int progress)

public int

getprogresscolor()

public void

setprogresscolor(int progresscolor)

}

自定義圓形進度條

author wangxiao public class roundprogressbar extends view public roundprogressbar context context,attributeset attrs public roundprogressbar context ...

自定義圓形進度條

之前做專案的時候有用到環形進度條,先是在網上找了一下第三方控制項,發現好用是好用,就是東西太多了,有點複雜,還不如自己寫乙個簡單點適合自己用的。先把自定義控制項的效果圖貼出來。其實我寫的這個控制項很簡單。索性就直接把原始碼貼出來吧。h檔案的內容就是一些宣告 import inte ce progre...

自定義圓形進度條

首先在values檔案下面建立 attr.xml檔案 name circleprogressbar name ringcolor format color name ridus format dimension name ringwidth format dimension name textsiz...