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 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 久久精品无码一区二区app| 亚洲一区二区三区国产精品无码| 久久一区二区三区99| 国产一区二区三区免费视频| 日本夜爽爽一区二区三区| 国产成人精品无人区一区| 日韩欧国产精品一区综合无码| 久久无码人妻一区二区三区| 国产一区二区草草影院| 国产激情精品一区二区三区| 一区二区三区四区免费视频| 在线观看国产一区二三区| 国产伦精品一区二区三区在线观看 | 亚洲字幕AV一区二区三区四区 | 日本一区午夜艳熟免费| 无码人妻精品一区二区三区在线| 国产一区二区三区韩国女主播| 日本夜爽爽一区二区三区| 日韩好片一区二区在线看| 国产精品综合一区二区三区| 国产免费一区二区三区不卡| 日本无码一区二区三区白峰美 | 亚洲另类无码一区二区三区| jazzjazz国产精品一区二区| 亚洲国产精品综合一区在线 | 亚洲成AV人片一区二区| 爆乳无码AV一区二区三区| 成人免费av一区二区三区| 亚洲乱码av中文一区二区| 国产亚洲3p无码一区二区| 国产一区美女视频| 精品人无码一区二区三区| 亚洲成人一区二区| 毛片一区二区三区无码| 日本成人一区二区三区| 日韩动漫av在线播放一区| 老熟妇仑乱一区二区视頻| 视频一区精品自拍| 日本一区二区在线免费观看| 国内精品一区二区三区东京| 日本一区二区不卡在线|