目前我正在扩展一个Dialog
,并使用构造函数Dialog(Context context, int theme)
通过主题设置背景颜色。这个对话框是一个覆盖层,因此它位于屏幕上显示的所有内容之上。主题如下:
<style
name="Theme.example"
parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowAnimationStyle">@null</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowBackground">@color/background_color</item>
</style>
请注意,此主题通过
android:windowBackground
属性设置背景颜色。 我需要更改整个屏幕的颜色,包括通知栏。 但是,我还希望能够在 Java 中动态更改背景,而无需重新加载对话框。 我想到的最好方法是使用 getWindow().setBackgroundDrawableResource(R.drawable.background)
,其中 Drawable
只是所需颜色的单个像素。有更好的方法吗? 我目前的方法可以正常工作,但是如果能够使用没有预定义在
R.drawable
中的颜色将会更好。