直接封装成一个类 注:此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