1、提供一個 創建對話框的方法
/**
* 獲取一個類似加載的對話框
* @param context 上下文
* @param msg 文字說明
* @return 對話框的對象
*/
public static Dialog createLoadingDialog(Context context, String msg) {
/*
* 獲得view填充器對象
*/
LayoutInflater inflater = LayoutInflater.from(context);
/*
* 得到加載view
*/
View v = inflater.inflate(R.layout.loading_dialog, null);
/*
* 加載佈局
*/
LinearLayout layout = (LinearLayout) v.findViewById(R.id.dialog_view);
/*
* main.xml中的ImageView
*/
// ImageView spaceshipImage = (ImageView) v.findViewById(R.id.img);
TextView tipTextView = (TextView) v.findViewById(R.id.tipTextView);// 提示文字
/*
* 加載動畫
*/
// Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(
// context, R.anim.loading_animation);
/*
* 使用ImageView顯示動畫
*/
// spaceshipImage.startAnimation(hyperspaceJumpAnimation);
if(msg != null && !msg.equals("")){
tipTextView.setText(msg);// 設置加載信息
}
Dialog loadingDialog = new Dialog(context, R.style.loading_dialog);// 創建自定義樣式dialog
loadingDialog.setCancelable(true);// 可以用“返回鍵”取消
loadingDialog.setCanceledOnTouchOutside(false);//
loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT));// 設置佈局
loadingDialog.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
}
});
return loadingDialog;
}
2、自定義對話框的樣式代碼如下
<style name="loading_dialog" parent="android:style/Theme.Dialog">
<item name="android:windowBackground">@android:color/transparent</item><!--背景透明-->
<item name="android:windowFrame">@null</item><!--邊框-->
<item name="android:windowNoTitle">true</item><!--無標題-->
<item name="android:windowIsFloating">true</item><!--是否浮現在activity之上-->
<item name="android:windowIsTranslucent">true</item><!--半透明-->
<item name="android:windowContentOverlay">@null</item><!--內容覆蓋 -->
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item><!-- 窗口樣式Dialog -->
<item name="android:backgroundDimEnabled">true</item><!--模糊-->
</style>
3、對話框中圖片的動畫效果
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false"> <!--是否執行一次 false循環執行-->
<item android:drawable="@drawable/dialog_loading1" android:duration="100" />
<item android:drawable="@drawable/dialog_loading2" android:duration="100" />
<item android:drawable="@drawable/dialog_loading3" android:duration="100" />
<item android:drawable="@drawable/dialog_loading4" android:duration="100" />
<item android:drawable="@drawable/dialog_loading5" android:duration="100" />
<item android:drawable="@drawable/dialog_loading6" android:duration="100" />
<item android:drawable="@drawable/dialog_loading7" android:duration="100" />
<item android:drawable="@drawable/dialog_loading8" android:duration="100" />
</animation-list>
4、最後對話框的佈局
<pre class="html" name="code"><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dialog_view"
android:orientation="vertical"
android:layout_width="150dp"
android:layout_height="105dp"
android:background="@drawable/loading_bg"
android:gravity="center"
android:layout_gravity="center"
>
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@anim/dialog_loading" <!--圖片加載 之前設置好的動畫文件-->
android:layout_gravity="center"
/>
<TextView
android:id="@+id/tipTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_gravity="center"
android:textColor="@color/white"
android:text="@string/dialog_loading_text" />
</LinearLayout>