说在前面
在项目中经常会用到dialog,我们项目中也用到了dialog,设计师特地标识了背景为
#CC272B3C80%透明度的蓝黑背景,长这样,80%的透明背景看不出来,大家感受没有透明度的吧:
设计师标记的颜色.png
一看这颜色,不就改变下背景嘛
@color/cc272b3c
true
改完后运行发现颜色并没有改变,瞬间惊呆,原来木有用。
查阅资料发现windowBackground改变的是dialog自身背景的颜色,而backgroundDimEnabled只能调节页面背景暗或者亮。既然这样那我就把dialog调整为全屏大小,再在dialog中加入viewgroup不就可以了嘛,说干咱抄起家活就干起来:
资源文件
首先设置xml的style,需要把dialog背景设置为透明,页面背景设置高亮
@null
true
stateUnspecified|adjustPan
@color/transparent
true
false
需要一个只带空的framelayout布局
android:id="@+id/fLRootView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/color_272B3C_80">
java类
自定义dialog
public abstract class BaseDialog extends Dialog {
protected View dView;
/**
* 编辑资料页面需要点击阴影部分dialog消失
* 提供外部调用root布局设置点击事件