在很多地方都會用到等待,例如下載文件、顯示圖片等
以前都是使用ProgressDialog,他會彈出一個視窗,在你面前轉圈圈
現在Google已經說不推薦使用,因為他會在最上層,讓使用者無法操作
現在建議的解決方式,差別就在於僅顯示動畫,但「不要用彈出視窗」
所以我們可以把等待動畫放在載入後會顯示的物件下方
這樣的好處就是圖片載入完成時會把「載入動畫」蓋住,使用者就看不到啦~
如果放錯位置,把載入動畫放在上方的話,圖片載入成功後還是會看到載入動畫(也可以手動讓動畫不可見)
程式碼:
activity_main.xml
<ProgressBar
android:id="@+id/indeterminateBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:visibility="gone"
app:srcCompat="@drawable/hid" />
MainActivity.java
//模擬載入 //等待五秒
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
//模擬載入成功後 //等待五秒鐘後
show();
}
}, 5000);
private void show() {
ProgressBar progressBar = findViewById(R.id.indeterminateBar);
progressBar.setVisibility(View.GONE);
ImageView imageView = findViewById(R.id.imageView);
imageView.setVisibility(View.VISIBLE);
}
執行結果:
如果大家對上面的「爆炸圖」有興趣再留言告訴我^^
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com