Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android自定义形状对话框_Android_Custom Component - Fatal编程技术网

Android自定义形状对话框

Android自定义形状对话框,android,custom-component,Android,Custom Component,我正在尝试在android中创建一个自定义形状的对话框。我想要的不是矩形的形状,而是我想要创建的任何形状。例如,放置一个自定义背景,它是一个圆形的png图像 如果我这样做,圆圈外的区域将被白色填充,以填充对话框的矩形。我需要的是只隐藏圆形和布局的其余部分。希望这是有意义的 据我所知,这是不可能的,但还是可能有人有一些好主意?谢谢 解决方法是使用透明背景色(ARGB#00000000或Color.transparent)自定义对话框。之后,使用可绘制的XML作为背景向自定义对话框添加线性布局。在该

我正在尝试在android中创建一个自定义形状的对话框。我想要的不是矩形的形状,而是我想要创建的任何形状。例如,放置一个自定义背景,它是一个圆形的png图像

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


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

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


我记得在过去实现过这种效果,但手头没有代码来查看确切的语法。

嗯,我实际上找到了我想要的:

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\u transparent\u NoTitleBar。但我仍然想让对话框外的区域变暗,而一旦我使背景半透明,它就不会这样做。你知道怎么做吗?