设置自定义有动画dialog

来源:互联网 发布:安卓性能优化 编辑:程序博客网 时间:2024/05/22 01:53

public class CustomDialog extends Dialog {

 

public CustomDialog(Context context, boolean cancelable, OnCancelListener cancelListener) {
  super(context, cancelable, cancelListener);
  init(context);
 }

 public CustomDialog(Context context, int theme) {
  super(context, theme);
  init(context);
 }

 public CustomDialog(Context context) {
  super(context, R.style.dialog_style);
  init(context);
 }

 

/**
   * 设置有动画的自定义dialog
   * @version 1.0
   * @createTime 2014年9月9日,上午9:29:49
   * @updateTime 2014年9月9日,上午9:29:49
   * @createAuthor WangYuWen
   * @updateAuthor WangYuWen
   * @updateInfo (此处输入修改内容,若无修改可不写.)
   *
   *  @param layoutResID 布局文件
   *  @param x  x小于0左移,大于0右移
   *  @param y  y小于0上移,大于0下移
   */
 public void showDialog(int layoutResID, int x, int y) {
  setContentView(layoutResID);

  windowDeploy(x, y);

  // 设置触摸对话框意外的地方取消对话框
  setCanceledOnTouchOutside(true);
  //返回键退出
  setCancelable(true);
  show();
 }

 // 设置窗口显示
 public void windowDeploy(int x, int y) {
  window = getWindow(); // 得到对话框
  window.setWindowAnimations(R.style.dialogWindowAnim); // 设置窗口弹出动画
  window.setBackgroundDrawableResource(R.color.transparent); // 设置对话框背景为透明
  WindowManager.LayoutParams wl = window.getAttributes();
  // 根据x,y坐标设置窗口需要显示的位置
  wl.x = x; // x小于0左移,大于0右移
  wl.y = y; // y小于0上移,大于0下移
  // wl.alpha = 0.6f; //设置透明度
  // wl.gravity = Gravity.BOTTOM; //设置重力
  window.setAttributes(wl);
 }

}
0 0