目前,我扩展了一个Dialog并使用构造函数Dialog(Context context,int theme)通过一个主题设置背景色.该对话框是一个叠加层,因此它位于屏幕上显示的所有内容之上.主题如下:
parent="android:Theme">
true
false
true
false
false
@null
@null
@color/background_color
请注意,此主题通过android:windowBackground属性设置背景颜色.我需要整个屏幕来更改颜色,包括通知栏.但我也希望能够在对话框显示后在Java中动态更改背景.我想出的最好方法是使用getWindow().setBackgroundDrawableResource(R.drawable.background),其中Drawable只是我想要的颜色的单个像素.
有一个更好的方法吗?我当前的方法可以正常工作,但是能够使用我在R.drawable中未预定义的颜色会很好.
解决方法:
您可以创建ColorDrawable类的新实例并将其设置为背景.每当需要更改颜色时,都可以调用setColor(int color)
在那个班上.
ColorDrawable colorDrawable = new ColorDrawable();
// ColorDrawable colorDrawable =
// new ColorDrawable(0xFF00FF00); // With a custom default color.
colorDrawable.setColor(0xFFFF0000);
标签:drawable,background,android
来源: https://codeday.me/bug/20191207/2087125.html