【发布时间】:2012-02-20 14:34:08
【问题描述】:
我正在尝试在 android 中创建一个自定义形状的对话框。我想要的不是矩形,而是具有我可能想要创建的任何形状。就像放置一个自定义背景,它是一个圆形的 png 图像。
如果我这样做,圆圈外的区域会被白色填充以填充对话框的矩形。我需要的是只有圆圈和布局的其余部分被隐藏。希望这是有道理的。
据我所知,这是不可能的,但也许有人有一些好主意?谢谢。
【问题讨论】:
我正在尝试在 android 中创建一个自定义形状的对话框。我想要的不是矩形,而是具有我可能想要创建的任何形状。就像放置一个自定义背景,它是一个圆形的 png 图像。
如果我这样做,圆圈外的区域会被白色填充以填充对话框的矩形。我需要的是只有圆圈和布局的其余部分被隐藏。希望这是有道理的。
据我所知,这是不可能的,但也许有人有一些好主意?谢谢。
【问题讨论】:
绕过它的方法是使用透明背景颜色(ARGB #00000000 或 Color.Transparent)的自定义对话框。之后,将线性布局添加到您的自定义对话框中,并使用 XML 可绘制作为背景。在该 XML 中,指定边框半径以使布局成为圆形。接下来,将另一个布局添加到该线性布局,将宽度和高度设置为 FILL_PARENT 并将背景设置为圆形图像。最后将其余的对话组件添加到第二个布局中。
我记得以前实现过这个效果,但是手头没有代码来查看确切的语法。
【讨论】:
嗯,我真的找到了我想要的:
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 形状或边框。只要您根据对话框设计管理布局,这很容易涵盖任何形状,而不仅仅是圆形/矩形等。
【讨论】: