我有一组20种颜色,有亮暗模式版本,我可以根据主题正常访问。但在某些情况下,我需要以编程方式将颜色的亮暗变体作为两个独立的变量,而不考虑应用程序的昼夜模式。有没有办法强制使用id解析颜色的哪个版本?
我的第一个想法是传递一个带有强制昼夜模式的假资源,类似于这样:
val resourceLight = //Light resource/context
val resourceDark = //Light resource/context
val colorLight = ContextCompat.getColor(resourceLight,R.color.chatTextColorTeal)
val colorDark = ContextCompat.getColor(resourceDark,R.color.chatTextColorTeal)
字符串
但我找不到任何方法去做。
1条答案
按热度按时间mlnl4t2r1#
不知道你是在使用XML还是Compose,所以我会尝试为两者写一个答案:
XML:
相当确定您可以通过使用上下文 Package 器从选定的模式(和配色方案)中获取颜色
字符串
组成:
你应该能够手动引用相反的颜色,因为它几乎是一个全局变量,或者你可能想考虑使用contentcolorFor来获得一个颜色,以确保足够的对比度