安卓自定义形状对话框

4

我正在尝试在Android中创建一个自定义形状的对话框。我想要的是将其从矩形形状更改为其他任何我想要的形状,比如放置一个自定义背景,该背景是一个圆形的png图片。

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

据我所知这是不可能的,但还是希望有人有一些好的想法?谢谢。

2个回答

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


这太棒了,非常感谢。我已经让它工作了,但我不想使其全屏,所以我只是使用了android.R.style.Theme_Translucent_NoTitleBar。但我仍然希望在该对话框框外的区域变暗,但在将背景透明化后,它并没有实现。你有任何想法如何做到这一点吗? - Graham Baitson

4
绕过此问题的方法是使用带有透明背景颜色(ARGB #00000000或Color.Transparent)的自定义对话框。然后,在您的自定义对话框中添加一个线性布局,其中包含用于背景的XML可绘制对象。在该XML中,指定边框半径以使布局成为圆形。接下来,在该线性布局中添加另一个布局,将其宽度和高度都设置为FILL_PARENT,并将背景设置为您的圆形图像。最后,将其余对话框组件添加到此第二个布局中。
我记得以前实现过这种效果,但没有代码可供查看确切的语法。

这看起来很正常。我会尝试一下并回来给一些反馈。 - Fofole

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接