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);
}