AlertDialog有以下六種使用方法: 一、簡單的AlertDialog(只顯示一段簡單的信息) 二、帶按鈕的AlertDialog(顯示提示信息,讓用戶操作) 三、類似ListView的AlertDialog(展示內容) 四、類似RadioButton的AlertDialog(讓用戶選擇,單選 ...
AlertDialog有以下六種使用方法:
一、簡單的AlertDialog(只顯示一段簡單的信息)
二、帶按鈕的AlertDialog(顯示提示信息,讓用戶操作)
三、類似ListView的AlertDialog(展示內容)
四、類似RadioButton的AlertDialog(讓用戶選擇,單選)
五、類似CheckBox的AlertDialog(讓用戶多選)
六、自定義View的AlertDialog(當以上方式滿足不了你的需求,就要自定義了)
這裡寫的就是第六種用法,效果圖如下(效果類似與IOS中的MBProgressHUD)
具體實現如下:
.java代碼
// 自定義彈出框,框內放入圖片,圖片設置旋轉動畫
AlertDialog alert_progress = new AlertDialog.Builder(當前activity.this).create();
alert_progress.show();
alert_progress.setCancelable(false); // 點擊背景時對話框不會消失
// alert_progress.dismiss(); // 取消對話框
Window window = alert_progress.getWindow();
window.setContentView(R.layout.alert_dialog_progress_view); //載入自定義的佈局文件
WindowManager.LayoutParams wm = window.getAttributes();
wm.width = 250; // 設置對話框的寬
wm.height = 200; // 設置對話框的高
wm.alpha = 0.5f; // 對話框背景透明度
wm.dimAmount = 0.6f; // 遮罩層亮度
window.setAttributes(wm);
ImageView img = (ImageView)window.findViewById(R.id.progress_bar); // 獲取佈局文件中的ImageView控制項
img.setBackgroundResource(R.drawable.loading_one); // 設置圖片,也可在佈局文件中設置
// 設置旋轉動畫
Animation tranfrom = new RotateAnimation(0,359,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);(359:旋轉角度(可自調),若為360會有卡頓,正數為順勢針旋轉,負數為逆時針)
tranfrom.setDuration(2000); // 旋轉速度
tranfrom.setFillAfter(true);
tranfrom.setRepeatCount(-1); // -1為一隻旋轉,若10,則旋轉10次設定的角度後停止
// tranfrom.cancel(); // 取消動畫
img.setAnimation(tranfrom);
佈局代碼:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorBlack">
<ImageView
android:id="@+id/progress_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"/>
<TextView
android:text="正在載入..."
android:layout_width="match_parent"
android:layout_height="20dp"
android:textColor="@color/colorWhite"
android:layout_gravity="center"
android:gravity="center"/>
</LinearLayout>
附:旋轉背景圖