Dialog探索一:MaterialDialog

关于Dialog的实现方式,Google官方给出了详细的指导,点击这里。截图如下

Dialog探索一:MaterialDialog_第1张图片

我的demo使用AlertDialog的自定义布局实现了MaterialDialog,源码点击这里


Dialog背景设置:

问题:我对Dialog设置的背景总是不生效,大概修改了四五次xml样式都不生效。

关键点:然后我怀疑是Dialog的window对象在最底层的样式起作用。

解决:

public class MyDialogextends Dialog{

public MyDialog (Context context) {
    super(context,android.R.style. Theme);  //在这需要设置个系统的theme替换dialog默认的主题,不设置下面的window设置都无效
    setOwnerActivity((Activity)(context));
    Window window = getWindow();
    requestWindowFeature(Window. FEATURE_NO_TITLE);  //去掉dialog的title
    window.addFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN);  //全屏的flag
    window.setBackgroundDrawableResource(android.R.color.transparent); //设置window背景透明
    WindowManager.LayoutParams lp = window.getAttributes();
    lp.alpha = 1.0f;
    lp.dimAmount = 0.0f; //dimAmount在0.0f和1.0f之间,0.0f完全不暗,1.0f全暗
    window.setAttributes(lp);
    this.setCancelable( false);
}

public void show(FlashAd flashAd){
    this.setContentView(flashAd);
    this.show();
}
解决链接: https://my.oschina.net/CFred/blog/402390



效果见下图:

Dialog探索一:MaterialDialog_第2张图片

Dialog探索一:MaterialDialog_第3张图片Dialog探索一:MaterialDialog_第4张图片




Dialog探索一:MaterialDialog_第5张图片

你可能感兴趣的:(Android,学习记录,我的分享)