2012-02-20 149 views
3

我想在android中创建自定义形状的对话框。我想要的是它不是矩形的,而是我想要创造的任何形状。就像把一个自定义的背景,这是一个圆形的PNG图像。Android自定义形状的对话框

如果我这样做,圆圈外面的区域会被填充白色以填充对话框的矩形。我需要的是只有圆和布局的其余部分被隐藏。希望这是有道理的。

从我知道这是不可能的,但也许有人有一些好点子?谢谢。

回答

3

绕过它的方法是使用透明背景色(ARGB#00000000或Color.Transparent)进行自定义对话框。之后,使用XML可绘制的背景为您的自定义对话框添加线性布局。在该XML中,指定边界半径以使布局成为一个圆圈。接下来,将宽度和高度都设置为FILL_PARENT并将背景设置为圆形图像的线性布局添加另一个布局。最后将其余的对话组件添加到第二个布局。

我记得在过去取得这种效果,但没有代码方便查看确切的语法。

+0

这似乎是合法的。我会尝试一下并回复一些反馈。 – Fofole 2012-02-20 16:00:17

4

好吧,我居然找到了我想要的:

final Dialog d = new Dialog(this,android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); 
     d.setContentView(R.layout.custom); 
     d.setCanceledOnTouchOutside(true); 
     d.setCancelable(true); 
     return d; 

对话框构造让我把它透明的,然后我可以做任何事情,我想在我的布局与背景,任何形状我一个PNG图像想。没有android形状或边框需要。只要您根据对话框设计管理布局,就可以轻松覆盖任何形状,而不仅仅是圆/矩形等。

+0

这太好了,非常感谢。我有这个工作,但我不想让它全屏,所以我只用了android.R.style.Theme_Translucent_NoTitleBar。但是我仍然希望将该对话框以外的区域变暗,这是一旦我将背景变成半透明后就不会执行的操作。你有什么想法如何做到这一点? – 2014-03-08 15:40:09