为对话框设置“暗淡”颜色

时间:2011-06-08 05:02:48

标签: android user-interface dialog

我理解如何设置Dialog的昏暗量。但是,我更喜欢颜色是半透明的白色而不是半透明的黑色(或者是深灰色?)。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

首先,您需要创建白色9-patch drawable。类似于panel_background.9.png drawable(黑色),可以在路径中找到:

 <android-sdk-dir>/platforms/android-#/data/res/drawable-hdpi/panel_background.9.png

我们假设您的drawable将被称为white_panel_background.9.png


选项1。

您可以使用自定义白色9-patch drawable创建扩展Theme.Dialog并覆盖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


enter image description here