我正在开发一个用于android的绘画应用程序,通过扩展View类。关于onDraw方法,每次调用onDraw时,我都会使用canvas.drawColor(Color.WHITE)绘制背景,并在其上绘制其他内容。当我处于默认的浅色主题时,一切都运行得很好,但一旦将深色主题应用到设备上,我的自定义视图的背景就会变成黑色。我怎么才能阻止它呢?
发布于 2021-07-11 08:08:28
确保你的应用程序的主题不是继承自Theme.MaterialComponents.DayNight
,而是继承自Theme.MaterialComponents.Light
或它的某个版本,以禁用night more。如果需要使用Theme.MaterialComponents.DayNight
主题,那么可以在values/colors.xml
和values-night/colors.xml
上指定颜色。该应用程序将使用values-night/colors.xml
颜色作为夜间主题。
发布于 2021-07-11 08:08:54
将背景颜色设置为您的自定义视图,不要将其保留为默认颜色。Android会在主题更改时更改默认颜色。
另一种解决方案是将主题设置为
<style name="App.Theme" parent="Theme.MaterialComponents.Light.NoActionBar.Bridge">
但这将导致无论系统/手机主题如何,始终都是轻巧的主题。
https://stackoverflow.com/questions/68333904
复制相似问题