android - 为对话框设置 "dim"颜色

标签 android user-interface dialog

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

最佳答案

首先,您需要创建白色的 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 .


enter image description here

关于android - 为对话框设置 "dim"颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6274403/

相关文章:

java - OpenGL ES 2.0 中的立方体不绘制给定的纹理

android - 如何使 ImageButtons 边界环绕图像?

user-interface - 如何在 Pharo 中使用 Spec 关闭窗口

linux - 如何在 Linux (GTK+) 中学习 xInput 和手势编程

android - 如何处理 Theme.Light 中的对话框背景在 pre-ICS sdk 上为黑色而在 ICS 上为白色的事实

android - 将CameraControl示例OpenCv4Android分为两个线程

javascript - 使用 javascript 获取手机区域设置

python - 导入 GDK 的问题

javascript - 在 jquery 中打开对话框而不是警报/提示

c++ - 将Win32对话框中的图标设置为默认图标