public abstract class BaseDialog extends Dialog {
private Context context;
public BaseDialog(Context context, int gravity, boolean backCancelable,
boolean outsideCancelable) {
super(context, R.style.dialog);
this.context = context;
init(gravity, backCancelable, outsideCancelable);
setContentView(getContentLayoutId());
initDialogView();
}
private void init(int gravity, boolean backCancelable, boolean outsideCancelable) {
this.setCancelable(backCancelable);
this.setCanceledOnTouchOutside(outsideCancelable);
Window dialogWindow = this.getWindow();
dialogWindow.getDecorView().setPadding(0, 0, 0, 0);
WindowManager.LayoutParams layoutParams = dialogWindow.getAttributes();
layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
layoutParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
layoutParams.gravity = gravity;
initLayout(layoutParams);
dialogWindow.setAttributes(layoutParams);
}
/**
* 设置宽 ,高 ,位置, 距离底部的方法, 可以由子类进行重写
*
* @param layoutParams
*/
protected void initLayout(WindowManager.LayoutParams layoutParams) {
}
//设置 resoucelayoutid
protected abstract int getContentLayoutId();
//设置 initview
protected abstract void initDialogView();
}