前言:

使用ProgressDialog可以实现多种样式,今天我们就来实现模拟水平进度条更新的效果。

具体实现:

布局页面一个按钮就不再说明。

下面来看在Activity代码中的实现:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private int iPos = 0; //初始化进度条的进度值
private ProgressDialog progressDialog; //声明进度条对话框的对象
private Button btn_progressDialog; //声明Button按钮对象

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_progressDialog = findViewById(R.id.btn_progressDialog);
btn_progressDialog.setOnClickListener(this);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_progressDialog:
progressDialog = new ProgressDialog(this);
progressDialog.setTitle("正在加载"); //设置进度条的标题
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //设置对话框样式为带有水平进度条的对话框
progressDialog.setMax(100); //设置进度条的最大值为100
progressDialog.setMessage("具体内容"); //设置具体的内容
progressDialog.show(); //显示对话框
//开启一个子线程模拟进度条更新进度
new Thread(new Runnable() {
@Override
public void run() {
while (progressDialog.getMax() - iPos > 0) {
iPos++;
progressDialog.setProgress(iPos);
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
progressDialog.dismiss(); //进度完成时对话框关闭
iPos=0;
}
}).start();
break;
}
}
}

具体效果如图所示:

Android 中ProgressDialog进度条对话框的使用(使用子线程模拟更新进度)_进度条对话框