我正在尝试创建一个具有半透明背景的自定义对话框。我设法让它通过代码工作:
getWindow().setBackgroundDrawableResource(R.color.bg_tran);
其中 bg_tran == #A0000000。但是我宁愿在 XML 中使用它,因为我将它用于几个不同的自定义对话框类。仅使用 android:background 不起作用。将主题设置为 @android:style/Theme.Translucent 也不起作用。
我发现了几篇关于使用属性 android:windowBackground 的文章。但是 android:windowBackground 属性不存在。意思是 Eclipse 并没有显示它作为自动完成的选项。我检查了我的样式表和我的实际 layout.xml。由于我正在为 2.2 编译,我认为这个问题并将构建目标更改为 4.0.3。没有修复。我什至尝试过明确地使用它,但它不起作用。我搜索了 Android Dev 网站,甚至找不到描述此属性的页面。除了偶尔顺便提一下,什么都没有。还查找 setBackgroundDrawableResource 并没有告诉我等效的 XML 属性标记是什么。我非常困惑。我错过了什么?
堆栈溢出参考上面我曾经学过:
Transparent Dialog Theme
Android Dialog Transparent
How to make a custom dialog transparent
更新:
如果不清楚,是的,我尝试在主题中进行设置。不工作。这是我定义的主题:
<style name="my_dialog_theme" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@color/bg_tran</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
</style>