progressbar是進度條可以明顯觀察到目前載入的進度條,可以觀察到是否有在正常動作的一個元件。
@style/Widget.AppCompat.ProgressBar.Horizontal
:是長條型的ProgressBar
。@style/Widget.AppCompat.ProgressBar
:是轉圈型的ProgressBar
。SeekBar
的設定類似。
max
:這個進度條的最大值progress
:預設值,起始值。ProgressBar
的程式碼。
TextView
來顯示目前的進度數值。Button
就是來實作點擊事件來執行。<!-- 長條型進度條 -->
<ProgressBar
android:id="@+id/progressBarHorizontal"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:max="10000"
android:progress="0"
app:layout_constraintEnd_toStartOf="@+id/guideline2"
app:layout_constraintStart_toStartOf="@+id/guideline1"
app:layout_constraintTop_toBottomOf="@+id/progressbarTextView"
tools:ignore="MissingConstraints" />
<!-- 轉圈型進度條 -->
<ProgressBar
android:id="@+id/progress_circle"
style="@style/Widget.AppCompat.ProgressBar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:max="10000"
android:progress="0"
app:layout_constraintEnd_toStartOf="@+id/guideline2"
app:layout_constraintStart_toStartOf="@+id/guideline1"
app:layout_constraintTop_toBottomOf="@+id/progressBarHorizontal"
tools:ignore="MissingConstraints" />
setVisibility(View.INVISIBLE)
:將可視狀態設定為INVISIBLE
,就是不可視狀態。相反,設為VISIBLE
就是可視狀態。setmax();
。new Thread(()->{
//執行動作
}).start();
//最一開始將圓圈型progressbar設不可視狀態
progressBarCircle.setVisibility(View.INVISIBLE);
RunProgressBarBT.setOnClickListener(v -> {
//設置轉圈progressbar為可視狀態
progressBarCircle.setVisibility(View.VISIBLE);
//進度條最多就是100
progressbarHorizontal.setMax(100);
//建立一個新的線程來跑progressBar進度
new Thread(()->{
for (int i = 0; i <100 ; i++) {
//更新進度
progressbarHorizontal.setProgress(i);
progressBarTextView.setText ("Now progress status is :"+i);
SystemClock.sleep(50);
}
progressBarTextView.setText ("Complete Status Loading");
//跑完後,設置轉圈圈為不可視狀態
progressBarCircle.setVisibility(View.INVISIBLE);
//將進度條歸零
progressbarHorizontal.setProgress(0);
//在UI線程執行Toast的動作顯示已經完成進度條動作
runOnUiThread(()->{
Toast.makeText(this, "進度跑完!", Toast.LENGTH_SHORT).show();
});
}).start();
});