Jetpack Compose:如何根据系统明暗模式设置图片颜色滤镜?
Jetpack Compose 适配深浅模式的图片颜色滤镜实现
直接借助Compose内置的isSystemInDarkTheme()方法就能判断当前系统的深浅模式,动态给图片设置对应颜色的滤镜即可。需要注意Kotlin语法规范,if表达式需添加括号:
Image( painter = painterResource(id = R.drawable.app_logo), contentDescription = "应用图标", // 建议添加有意义的内容描述,提升无障碍体验 colorFilter = ColorFilter.tint( color = if (isSystemInDarkTheme()) { Color.White } else { Color.Black } ), modifier = Modifier .size(125.dp, 125.dp) .align(Alignment.TopCenter) .offset(y = 50.dp) )
如果使用的是自定义Compose主题,而非系统默认主题,也可以通过主题中维护的深色模式状态变量(比如自定义主题里的isDarkTheme)来替代isSystemInDarkTheme(),实现逻辑完全一致。
内容的提问来源于stack exchange,提问作者GVG
相关产品推荐
相关产品推荐

