ProgressDialog进度条对话框

Posted sunshine_96

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ProgressDialog进度条对话框相关的知识,希望对你有一定的参考价值。

(一)

1.效果图:

2.activity_main.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context="com.example.administrator.hello3.MainActivity">
11 
12     <Button
13         android:id="@+id/btn"
14         android:layout_width="match_parent"
15         android:layout_height="wrap_content"
16         android:text="显示进度条" />
17 </RelativeLayout>

3.MainActivity.java

 1 package com.example.administrator.hello3;
 2 
 3 import android.app.Activity;
 4 import android.app.ProgressDialog;
 5 import android.os.Handler;
 6 import android.os.Message;
 7 import android.support.v7.app.AppCompatActivity;
 8 import android.os.Bundle;
 9 import android.view.View;
10 import android.widget.Button;
11 
12 public class MainActivity extends Activity {
13 
14     private Button button;
15     private ProgressDialog pd;
16     private final static  int MAXVALUE=100;
17     private int progressStatus =0; //进度条对话框的百分比情况
18     private int data[] = new int[100];//填充数组
19     private  int current = 0;
20     private Handler handler = new Handler(){
21         @Override
22         public void handleMessage(Message msg) {
23             if(msg.what==0x123){
24                 pd.setProgress(progressStatus);
25             }
26 
27             super.handleMessage(msg);
28         }
29     };
30 
31     @Override
32     protected void onCreate(Bundle savedInstanceState) {
33         super.onCreate(savedInstanceState);
34         setContentView(R.layout.activity_main);
35 
36         button=(Button)findViewById(R.id.btn);
37         button.setOnClickListener(new View.OnClickListener() {
38             @Override
39             public void onClick(View v) {
40                 progressStatus=0;
41                 current=0;
42                 pd=new ProgressDialog(MainActivity.this);
43                 pd.setMax(MAXVALUE);
44                 pd.setTitle("任务完成百分比");
45                 pd.setMessage("耗时任务完成百分比");
46                 pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
47 
48                 pd.show();
49 
50                 new Thread(new Runnable() {
51                     @Override
52                     public void run() {
53                         while (progressStatus<MAXVALUE){
54                             progressStatus=MAXVALUE*dowork()/data.length;
55                             handler.sendEmptyMessage(0x123);
56                         }
57                         if(progressStatus>=MAXVALUE){
58                             pd.dismiss();
59                         }
60                     }
61                 }).start();
62             }
63         });
64     }
65 
66     public  int dowork(){
67         data[current++]=(int)(Math.random()*100);
68         try {
69             Thread.sleep(100);
70         }catch (InterruptedException e){
71             e.printStackTrace();
72         }
73         return current;
74     }
75 }

 

以上是关于ProgressDialog进度条对话框的主要内容,如果未能解决你的问题,请参考以下文章

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

Android中通过实现线程更新ProgressDialog(对话进度条)

Android 进度条对话框ProgressDialog

进度对话框 ProgressDialog 用法总结

ProgressDialog进度条对话框

ProgressDialog