ProgressDialog,进度对话框。一般有两种,一种是圆形的进度条(ProgressDialog.STYLE_SPINNER),另一种是长条形的进度条(ProgressDialog.STYLE_HORIZONTAL)。
ProgressDialog常用的方法有以下几种:
1 progressDialog = new ProgressDialog(MainActivity.this); // 新建一个ProgressDialog 2 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); // 设置ProgressDialog的样式 3 progressDialog.setTitle("Note:"); // 设置标题 4 progressDialog.setMessage("这是一个水平进度条"); // 设置显示内容 5 progressDialog.setIndeterminate(false); // 是否是不确定状态 6 progressDialog.setCancelable(true); // 是否可以取消 7 progressDialog.setProgress(0); // 设置初始进度 8 progressDialog.setMax(200); // 设置最大进度 9 progressDialog.setSecondaryProgress(100); // 设置第二进度(可用于缓冲显示) 10 progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() { 11 @Override // 设置按钮 12 public void onClick(DialogInterface dialogInterface, int i) { // DialogInterface表示按钮位置 13 progressDialog.cancel(); // BUTTON_POSITIVE 为最右边 14 } // BUTTON_NEUTRAL 为在中间 15 }); // BUTTON_NEGATIVE 为最左边 16 progressDialog.show(); // 显示ProgressDialog
1、圆形进度条
1 btnCricleDlg = (Button)findViewById(R.id.btnCircleDlg); 2 3 btnCricleDlg.setOnClickListener(new View.OnClickListener() { 4 @Override 5 public void onClick(View view) { 6 progressDialog = new ProgressDialog(MainActivity.this); 7 progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 8 progressDialog.setTitle("Note:"); 9 progressDialog.setMessage("这是一个圆形进度条"); 10 progressDialog.setIndeterminate(false); 11 progressDialog.setCancelable(true); 12 progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() { 13 @Override 14 public void onClick(DialogInterface dialog, int witch) { 15 progressDialog.cancel(); 16 } 17 }); 18 progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE,"CANCEL",new DialogInterface.OnClickListener(){ 19 @Override 20 public void onClick(DialogInterface dialog, int witch){ 21 progressDialog.cancel(); 22 } 23 }); 24 progressDialog.show(); 25 } 26 });
2、长形进度条
1 btnLongDlg = (Button) findViewById(R.id.btnLongDlg); 2 btnLongDlg.setOnClickListener(new View.OnClickListener() { 3 int count = 0; 4 @Override 5 public void onClick(View view) { 6 progressDialog = new ProgressDialog(MainActivity.this); // 新建一个ProgressDialog 7 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); // 设置ProgressDialog的样式 8 progressDialog.setTitle("Note:"); // 设置标题 9 progressDialog.setMessage("这是一个水平进度条"); // 设置显示内容 10 progressDialog.setIndeterminate(false); // 是否是不确定状态 11 progressDialog.setCancelable(true); // 是否可以取消 12 progressDialog.setProgress(0); // 设置初始进度 13 progressDialog.setMax(200); // 设置最大进度 14 progressDialog.setSecondaryProgress(100); // 设置第二进度(可用于缓冲显示) 15 progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() { 16 @Override // 设置按钮 17 public void onClick(DialogInterface dialogInterface, int i) { // DialogInterface表示按钮位置 18 progressDialog.cancel(); // BUTTON_POSITIVE 为最右边 19 } // BUTTON_NEUTRAL 为在中间 20 }); // BUTTON_NEGATIVE 为最左边 21 progressDialog.show(); // 显示ProgressDialog 22 23 new Thread(){ 24 public void run(){ 25 while(count<=200){ 26 try{ 27 Thread.sleep(100); 28 progressDialog.incrementProgressBy(1); 29 }catch(Exception e){ 30 31 } 32 33 } 34 } 35 36 }.start(); 37 } 38 });
3、完整代码

1 import android.app.ProgressDialog; 2 import android.content.DialogInterface; 3 import android.support.v7.app.AppCompatActivity; 4 import android.os.Bundle; 5 import android.view.View; 6 import android.widget.Button; 7 8 9 public class MainActivity extends AppCompatActivity { 10 11 private Button btnCricleDlg; 12 private Button btnLongDlg; 13 private ProgressDialog progressDialog; 14 15 @Override 16 protected void onCreate(Bundle savedInstanceState) { 17 super.onCreate(savedInstanceState); 18 setContentView(R.layout.activity_main); 19 20 btnCricleDlg = (Button)findViewById(R.id.btnCircleDlg); 21 btnLongDlg = (Button) findViewById(R.id.btnLongDlg); 22 23 btnCricleDlg.setOnClickListener(new View.OnClickListener() { 24 @Override 25 public void onClick(View view) { 26 progressDialog = new ProgressDialog(MainActivity.this); 27 progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 28 progressDialog.setTitle("Note:"); 29 progressDialog.setMessage("这是一个圆形进度条"); 30 progressDialog.setIndeterminate(false); 31 progressDialog.setCancelable(true); 32 progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() { 33 @Override 34 public void onClick(DialogInterface dialog, int witch) { 35 progressDialog.cancel(); 36 } 37 }); 38 progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE,"CANCEL",new DialogInterface.OnClickListener(){ 39 @Override 40 public void onClick(DialogInterface dialog, int witch){ 41 progressDialog.cancel(); 42 } 43 }); 44 progressDialog.show(); 45 } 46 }); 47 48 btnLongDlg.setOnClickListener(new View.OnClickListener() { 49 int count = 0; 50 @Override 51 public void onClick(View view) { 52 progressDialog = new ProgressDialog(MainActivity.this); // 新建一个ProgressDialog 53 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); // 设置ProgressDialog的样式 54 progressDialog.setTitle("Note:"); // 设置标题 55 progressDialog.setMessage("这是一个水平进度条"); // 设置显示内容 56 progressDialog.setIndeterminate(false); // 是否是不确定状态 57 progressDialog.setCancelable(true); // 是否可以取消 58 progressDialog.setProgress(0); // 设置初始进度 59 progressDialog.setMax(200); // 设置最大进度 60 progressDialog.setSecondaryProgress(100); // 设置第二进度(可用于缓冲显示) 61 progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() { 62 @Override // 设置按钮 63 public void onClick(DialogInterface dialogInterface, int i) { // DialogInterface表示按钮位置 64 progressDialog.cancel(); // BUTTON_POSITIVE 为最右边 65 } // BUTTON_NEUTRAL 为在中间 66 }); // BUTTON_NEGATIVE 为最左边 67 progressDialog.show(); // 显示ProgressDialog 68 69 new Thread(){ 70 public void run(){ 71 while(count<=200){ 72 try{ 73 Thread.sleep(100); 74 progressDialog.incrementProgressBy(1); 75 }catch(Exception e){ 76 77 } 78 79 } 80 } 81 82 }.start(); 83 } 84 }); 85 86 } 87 88 }