我正在尝试在android中创建自定义形状的对话框。我想要的不是它的长方形,而是我想要创造的任何形状。就像把自定义背景放在一个圆形的png图像中一样。
如果我这样做,圆圈外的区域将填充白色以填充对话框的矩形。我需要的是只隐藏圆圈和布局的其余部分。希望这是有道理的。
据我所知,这是不可能的,但也许有人有一些好主意?谢谢。
答案 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形状或边框。只要您根据对话框设计管理布局,就可以轻松覆盖任何形状,而不仅仅是圆形/矩形等。