直接封裝成一個類 注:此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