一个依赖就可以实现复杂的圆形进度条
圆形进度条
第一步:
compile 'com.czp.arcProgressBar:ArcProgressBar:1.0.1'
第二步:
<com.czp.library.ArcProgress
android:id="@+id/myProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:degree="0"
app:progressStyle="arc" />
第三步:
public class MainActivity extends AppCompatActivity {
ArcProgress mProgress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找控件
mProgress = (ArcProgress) findViewById(R.id.myProgress);
//默认实现的类
//new OnTextcenter 初始化 文字颜色和文字大小
mProgress.setOnCenterDraw(new OnTextCenter(Color.BLUE, 30));
addProrgress(mProgress);
}
//开启线程的方法
public void addProrgress(ArcProgress progressBar) {
Thread thread = new Thread(new ProgressThread(progressBar));
thread.start();
}
//更新UI
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
ArcProgress progressBar = (ArcProgress) msg.obj;
progressBar.setProgress(msg.what);
}
};
//子线程
class ProgressThread implements Runnable {
int i = 0;
private ArcProgress progressBar;
public ProgressThread(ArcProgress progressBar) {
this.progressBar = progressBar;
}
@Override
public void run() {
for (; i <= 100; i++) {
//判断结束
if (isFinishing()) {
break;
}
//实例化消息对象
Message msg = new Message();
msg.what = i;
// Log.e("DEMO","i == "+i);
//发送进度条的进度
msg.obj = progressBar;
//系统时钟 睡 100 毫秒
SystemClock.sleep(100);
handler.sendMessage(msg);
}
}
}
}