安卓如何将自定义dialog布局主背景设置为透明色

安卓如何将自定义dialog布局主背景设置为透明色

  • 问题描述
  • 解决方法
  • 简单总结

问题描述

昨天在安卓开发的时候,有个需求是让我把弹出的dialog对话框的关闭按钮放在内容背景外面,就是下图那种,我首先想到的就是,把背景变成透明的,再把内容部分填充上背景颜色,按钮就可以看起来像是独立出去了,事实证明我这种想法是可行的。
但是当我实现背景透明的时候,却遇到了问题,在百度上查了一大圈得到的解决方法都是将布局的背景色设置为"#00cccccc",但实际我这样设了却没反应。其实解决方法很简单,就一行代码就行。
安卓如何将自定义dialog布局主背景设置为透明色_第1张图片

解决方法

在setContentView显示自定义的dialog布局之前,加入一行代码:
getWindow().setBackgroundDrawableResource(android.R.color.transparent);
这行代码是将对话框的布局主背景设置为透明

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
//		设置布局背景为透明
		getWindow().setBackgroundDrawableResource(android.R.color.transparent);
		setContentView(R.layout.second);
//		……
	}

之后运行再看,dialog的布局主背景已经是透明了,然后再设置内容布局颜色为白色,按钮所在的位置为透明,效果果然就出来了

	
            
            
            
    
    
	

        
    

简单总结

可以看到我依然用到了八位颜色值,先解释一下这个数值的意思,我们常常用到的都是六位数,例如"#f0f0f0"或者三位数值的#000来代表RGB颜色,
"#000"代表rgb,
"#f0f0f0"代表rrggbb,
"#ff000000"代表aarrggbb,
a就是Alpha值,代表透明度,范围是00~ff,00是透明,ff是不透明。

这里先用代码把主背景设置为全部透明,然后再用“#00000000”将关闭图片视图所在的线性布局背景设置为透明,就实现上述的效果了,很简单吧。希望能帮到你。

你可能感兴趣的:(UI控件学习)