android開發Dialog彈出框

直接封裝成一個類 注:此Dialog彈出的樣式是從下面往上彈出的。能夠根據須要進行修改android

import android.app.Dialog;
import android.content.Context;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
/**
 * 彈出框類
 * 
 * @author Dragonfly
 * 
 */
public class DialogUtil {
	private static Dialog dialog = null;
	/*
	 * 彈出dialog
	 */
	public static void getDialog(Context context, View v) {
		dialog = new Dialog(context, R.style.set_dialog_style);
		try {
			dialog.setCancelable(true);// 能夠用返回鍵取消
			dialog.setContentView(v);
			dialog.setCanceledOnTouchOutside(true);// 點擊其它區域取消dialog
			Window window = dialog.getWindow();
			WindowManager.LayoutParams wlp = window.getAttributes();
			//設置顯示動畫  
			window.setWindowAnimations(R.style.set_dialog_style);  
			wlp.gravity = Gravity.BOTTOM;// 設置在最下面
			wlp.width = WindowManager.LayoutParams.MATCH_PARENT;
                        wlp.height = WindowManager.LayoutParams.WRAP_CONTENT;
			window.setAttributes(wlp);
			dialog.show();
		} catch (Exception e) {
			LogUtil.e(DialogUtil.class,
					"nameOrHeadDialog(Context context, int who)", e);
		}
	}
	/*
	 * 刪除dialog
	 */
	public static void dismissDialog() {
		if (dialog != null && dialog.isShowing()) {
			dialog.dismiss();
		}
	}
}

其中使用到style樣式的寫法以下app

<!-- 設置頁面彈出樣式 -->
    <style name="set_dialog_style" parent="@style/AppTheme">
        <item name="@android:windowEnterAnimation">@anim/dialog_open_anim</item>
        <item name="@android:windowExitAnimation">@anim/dialog_close_anim</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><!--是否半透明-->
    </style>

使用到的dialog_open_anim以下:ide

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="500"
        android:fromYDelta="100.0%"
        android:toYDelta="1%" />
</set>

dialog_close_anim中的代碼以下:動畫

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="500"
        android:fromYDelta="1%"
        android:toYDelta="100.0%" />
</set>

注:此Dialog彈出的樣式是從下面往上彈出的。code

相關文章
相關標籤/搜索