Android ProgressBar示例含代碼

Android ProgressBar示例

我們可以顯示 Android進度條 對話框來顯示正在進行的工作的狀態,例如下載文件,分析工作狀態等。愛掏網 - it200.com

在這個例子中,我們為虛擬文件下載操作顯示進度對話框。愛掏網 - it200.com

在這里,我們使用 android.app.ProgressDialog 類來顯示進度條。愛掏網 - it200.comAndroid ProgressDialog是AlertDialog類的子類。愛掏網 - it200.com

ProgressDialog 類提供了一些方法來處理進度條,如setProgress(),setMessage(),setProgressStyle(),setMax(),show()等。愛掏網 - it200.com進度對話框的進度范圍是0到10000。愛掏網 - it200.com

讓我們看一個簡單的例子,在Android中顯示進度條。愛掏網 - it200.com

ProgressDialog progressBar = new ProgressDialog(this);
progressBar.setCancelable(true);//you can cancel it by pressing back button
progressBar.setMessage("File downloading ...");
progressBar.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressBar.setProgress(0);//initially progress is 0
progressBar.setMax(100);//sets the maximum value 100
progressBar.show();//displays the progress bar

讓我們看一個使用ProgressDialog類創建進度條的簡單示例。愛掏網 - it200.com

activity_main.xml

從工具箱中拖動一個按鈕,現在activity_main.xml文件看起來是這樣的:

<RelativeLayout xmlns:androclass="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="116dp"
        android:text="download file" />

</RelativeLayout>

Activity類

讓我們編寫代碼來顯示進度條對話框。愛掏網 - it200.com

package example.javatpoint.com.progressbar;

import android.app.ProgressDialog;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    Button btnStartProgress;
    ProgressDialog progressBar;
    private int progressBarStatus = 0;
    private Handler progressBarHandler = new Handler();
    private long fileSize = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        addListenerOnButtonClick();
    }
    public void addListenerOnButtonClick() {
        btnStartProgress = findViewById(R.id.button);
        btnStartProgress.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View v) {
                // creating progress bar dialog
                progressBar = new ProgressDialog(v.getContext());
                progressBar.setCancelable(true);
                progressBar.setMessage("File downloading ...");
                progressBar.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                progressBar.setProgress(0);
                progressBar.setMax(100);
                progressBar.show();
                //reset progress bar and filesize status
                progressBarStatus = 0;
                fileSize = 0;

                new Thread(new Runnable() {
                    public void run() {
                        while (progressBarStatus < 100) {
                            // performing operation
                            progressBarStatus = doOperation();
                            try {
                                Thread.sleep(1000);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                            // Updating the progress bar
                            progressBarHandler.post(new Runnable() {
                                public void run() {
                                    progressBar.setProgress(progressBarStatus);
                                }
                            });
                        }
                        // performing operation if file is downloaded,
                        if (progressBarStatus >= 100) {
                            // sleeping for 1 second after operation completed
                            try {
                                Thread.sleep(1000);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                            // close the progress bar dialog
                            progressBar.dismiss();
                        }
                    }
                }).start();
            }//end of onClick method
        });
    }
    // checking how much file is downloaded and updating the filesize
    public int doOperation() {
        //The range of ProgressDialog starts from 0 to 10000
        while (fileSize <= 10000) {
            fileSize++;
            if (fileSize == 1000) {
                return 10;
            } else if (fileSize == 2000) {
                return 20;
            } else if (fileSize == 3000) {
                return 30;
            } else if (fileSize == 4000) {
                return 40; // you can add more else if 
            } 
         /* else {
                return 100;
            }*/
        }//end of while
            return 100;
    }//end of doOperation
}

輸出:

聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
發表評論
更多 網友評論0 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 波多野结衣教师系列5| 成+人+黄+色+免费观看| 手机在线观看你懂的| 免费人成视频在线播放| 好妈妈5韩国电影高清中字| 99久久99久久精品国产片| 午夜亚洲av日韩av无码大全| 日日AV色欲香天天综合网| 达达兔欧美午夜国产亚洲| 久旷成熟的岳的| 国产在线一区观看| 日韩a级无码免费视频| 麻豆亚洲av熟女国产一区二| 亚洲AV无码成人黄网站在线观看 | 久久婷婷人人澡人人爱91| 成人免费无毒在线观看网站| 色老太婆bbw| 中文字幕人妻偷伦在线视频| 吃奶摸下激烈视频无遮挡| 帅教官的裤裆好大novels| 粉嫩大学生无套内射无码卡视频| 一级做a爰片性色毛片新版的| 免费观看中文字幕| 国产自无码视频在线观看| 欧美日韩一区二区三区在线观看视频| 18成人片黄网站www| 乱人伦中文字幕电影| 国产一级做a爰片...| 女性高爱潮视频| 欧美午夜成年片在线观看| 韩国二级毛片免费播放| 一本大道加勒比久久| 亚洲成a人v欧美综合天堂麻豆 | 美女被羞羞在线观看漫画| chinese中国农村夫tube| 亚洲伊人久久精品| 国产一区二区三区美女| 在线精品小视频| 日韩夜夜高潮夜夜爽无码| 福利一区二区三区视频午夜观看| aⅴ在线免费观看|