前言:
使用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; } } }
具体效果如图所示: