-
最近开发项目,遇到的自定义弹框挺多的。简单封装下,直接调用即可。代码非常简单,可自己拓展。
/**
* author: tzh
* date: 2018/12/5
* describe:封装baseDialog 直接调用即可
*/
public class MyBaseDialog extends Dialog {
private BaseDialogBuilder builder;
public MyBaseDialog(BaseDialogBuilder builder) {
super(builder.getContext(), R.style.SignDialogStyle);
this.builder = builder;
show();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(builder.getLayout());
Window dialogWindow = getWindow();
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
DisplayMetrics d = builder.getContext().getResources().getDisplayMetrics();
lp.width = (int) (d.widthPixels * builder.getWidth());
dialogWindow.setAttributes(lp);
}
public static class BaseDialogBuilder {
private View layout;
private float width;
private Context context;
public View getLayout() {
return layout;
}
public BaseDialogBuilder setLayout(View layout) {
this.layout = layout;
return this;
}
public float getWidth() {
return width;
}
public BaseDialogBuilder setWidth(float width) {
this.width = width;
return this;
}
public Context getContext() {
return context;
}
public BaseDialogBuilder setContext(Context context) {
this.context = context;
return this;
}
public MyBaseDialog build() {
return new MyBaseDialog(this);
}
}