我们有一个基于 View 的 Android 应用,其中某些 drawable 存储在
在使用旧版视图时,从 XML 布局文件中引用可绘制对象
在使用 Jetpack Compose 时,我们可以像这样在 Image Composable 中引用 Drawable:
然而,这将始终从“res/drawable”文件夹中选择drawable,忽略白天/黑夜模式。
我们可以做类似于以下的操作来选择正确的drawable,但需要在使用基于夜间模式的drawable的所有组合件中测试夜间模式(isSystemInDarkTheme())。
有没有一种方法可以在Compose中确保正确地选择白天或夜晚模式的drawable,并使其像传统视图系统一样透明?
res/drawable
文件夹中,对应的夜间模式 Drawable 存储在 res/drawable-night
文件夹中。在使用旧版视图时,从 XML 布局文件中引用可绘制对象
R.drawable.foo
时,系统会根据当前是否处于白天或黑夜模式来从 res/drawable
或 res/drawable-night
文件夹中选择可绘制对象。在使用 Jetpack Compose 时,我们可以像这样在 Image Composable 中引用 Drawable:
Image(painter = painterResource(R.drawable.foo))
然而,这将始终从“res/drawable”文件夹中选择drawable,忽略白天/黑夜模式。
我们可以做类似于以下的操作来选择正确的drawable,但需要在使用基于夜间模式的drawable的所有组合件中测试夜间模式(isSystemInDarkTheme())。
Image(painter = painterResource(id = if (isSystemInDarkTheme()) R.drawable.foo_dark else R.drawable.foo_light))
有没有一种方法可以在Compose中确保正确地选择白天或夜晚模式的drawable,并使其像传统视图系统一样透明?