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

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

解决方法

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

您可以创建扩展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性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...