【问题标题】:Android Custom shaped dialogAndroid 自定义形状对话框
【发布时间】:2012-02-20 14:34:08
【问题描述】:

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

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

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

【问题讨论】:

    标签: android custom-component


    【解决方案1】:

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

    我记得以前实现过这个效果,但是手头没有代码来查看确切的语法。

    【讨论】:

    • 这似乎是合法的。我会尝试一下,然后回来提供一些反馈。
    【解决方案2】:

    嗯,我真的找到了我想要的:

    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。但是我仍然希望该对话框之外的区域变暗,一旦我使背景半透明,它就不会这样做。你知道怎么做吗?
    猜你喜欢
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多