Android自定义形状对话框

时间:2012-02-20 14:34:09

标签: android custom-component

我正在尝试在android中创建自定义形状的对话框。我想要的不是它的长方形,而是我想要创造的任何形状。就像把自定义背景放在一个圆形的png图像中一样。

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

据我所知,这是不可能的,但也许有人有一些好主意?谢谢。

2 个答案:

答案 0 :(得分:4)

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

我记得在过去实现过这种效果,但是没有代码可以方便地查看确切的语法。

答案 1 :(得分: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形状或边框。只要您根据对话框设计管理布局,就可以轻松覆盖任何形状,而不仅仅是圆形/矩形等。