直接封装成一个类 注:此Dialog弹出的样式是从下面往上弹出的。可以根据需要进行修改
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样式的写法如下
@anim/dialog_open_anim
@anim/dialog_close_anim
@null
true
true
true
使用到的dialog_open_anim如下:
android:duration="500"
android:fromYDelta="100.0%"
android:toYDelta="1%" />
dialog_close_anim中的代码如下:
android:duration="500"
android:fromYDelta="1%"
android:toYDelta="100.0%" />
注:此Dialog弹出的样式是从下面往上弹出的。