我了解如何为对话框设置暗淡量。但是,我更喜欢颜色是半透明的白色而不是半透明的黑色(或者是深灰色?)。有什么想法吗?
最佳答案
首先,您需要创建白色的 9 色 block 可绘制对象。类似于可以在路径中找到的 panel_background.9.png
可绘制对象(黑色):
<android-sdk-dir>/platforms/android-#/data/res/drawable-hdpi/panel_background.9.png
假设您的可绘制对象名为 white_panel_background.9.png
。
选项 1.
您可以创建自定义主题,扩展 Theme.Dialog
并使用自定义白色 9-patch drawable 覆盖 windowBackground
属性。
<style name="Theme.WhiteDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@drawable/white_panel_background</item>
</style>
然后在你的对话框中使用这个主题:
Dialog dialog = Dialog(context, R.style.Theme_WhiteDialog);
选项 2。
如果您已经创建了对话框(使用默认主题),您仍然可以更新它的窗口背景:
Dialog dialog = ...;
...
Resources res = getResources();
Drawable drawable = res.getDrawable(R.drawable.white_panel_background);
dialog.getWindow().setBackgroundDrawable(drawable);
注意:您需要将文本颜色从白色更改为黑色(以便在白色背景上可见)。
注意:您需要为 AlertDialog 执行一些额外的步骤,因为它使用自己的背景样式。有关详细信息,请参阅 AlertDialog
style .
关于android - 为对话框设置 "dim"颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6274403/