⒈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();