Android原生控件 -- ProgressBar(進度加載) & ProgressDialog(進度展示對話框)


⒈ProgressBar使用

  默認

    <ProgressBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="@android:style/Widget.Material.ProgressBar"/>

  設置是否可見

    <ProgressBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="@android:style/Widget.Material.ProgressBar"
        android:visibility="visible"/>

  水平的進度條

    <ProgressBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="@android:style/Widget.ProgressBar.Horizontal"/>

  添加總進度、當前進度及二級進度(給人一種緩存的感覺)

    <ProgressBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="@android:style/Widget.ProgressBar.Horizontal"
        android:max="100"
        android:progress="10"
        android:secondaryProgress="30"/>    

  模擬進度

package cn.coreqi.helloworld2;


import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ProgressBar;
import android.widget.Toast;


public class MainActivity extends AppCompatActivity {

    private ProgressBar mPb1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mPb1 = findViewById(R.id.pb1);
        handler.sendEmptyMessage(0);
    }
    Handler handler = new Handler(){
        @Override
        public void handleMessage(@NonNull Message msg) {
            super.handleMessage(msg);
            if(mPb1.getProgress() < 100){
                handler.postDelayed(runnable,500);
            }else {
                Toast.makeText(getApplicationContext(),"加載完成",Toast.LENGTH_LONG).show();
            }
        }
    };
    Runnable runnable = new Runnable() {
        @Override
        public void run() {
            mPb1.setProgress(mPb1.getProgress() + 5);
        }
    };
}

  設置自定義進度圖片旋轉

<?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/icon_progress"
    android:pivotX="50%"
    android:pivotY="50%">

</animated-rotate>
    <ProgressBar
        android:id="@+id/pb1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:indeterminateDrawable="@drawable/bg_progress"/>

⒉ProgressDialog使用

  普通用法

        ProgressDialog progressDialog = new ProgressDialog(getApplicationContext());
        progressDialog.setTitle("提示");
        progressDialog.setMessage("正在加載");
        progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
            @Override
            public void onCancel(DialogInterface dialog) {
                
            }
        });
        //progressDialog.setCancelable(false);    
        progressDialog.show();

  進度條用法

        ProgressDialog progressDialog = new ProgressDialog(getApplicationContext());
        progressDialog.setTitle("提示");
        progressDialog.setMessage("正在下載");
        progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
            @Override
            public void onCancel(DialogInterface dialog) {

            }
        });
        //progressDialog.setCancelable(false);
        progressDialog.show();

  添加按鈕

        ProgressDialog progressDialog = new ProgressDialog(getApplicationContext());
        progressDialog.setTitle("提示");
        progressDialog.setMessage("正在下載");
        progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
            @Override
            public void onCancel(DialogInterface dialog) {

            }
        });
        progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "后台進行", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                
            }
        });
        //progressDialog.setCancelable(false);
        progressDialog.show();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM