微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Day Night Resources 中的颜色时,Vector Drawble fillColor 会发生变异

如何解决使用 Day Night Resources 中的颜色时,Vector Drawble fillColor 会发生变异

我使用 Theme.AppCompat.DayNight.NoActionBar 作为应用主题,并使用 values-night 限定符为白天和夜晚主题定义颜色资源

values/colors.xml

<color name="icon_color">#282C3C/color>

values-night/colors.xml

<color name="icon_color">#FFFFFF/color>

我使用了来自主题值的颜色资源的矢量可绘制

<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="9dp" android:height="6dp" android:viewportWidth="9" android:viewportHeight="6">
    <path
        android:pathData="M1.398 0.383l2.958 3.09c0.079 0.081 0.207 0.082 0.285 0l2.992-3.087C7.948 0.06 8.46 0.063 8.773 0.394c0.304 0.323 0.303 0.84-0.004 1.16L4.784 5.74c-0.157 0.165-0.415 0.165-0.573 0L0.233 1.577c-0.315-0.329-0.31-0.86 0.01-1.183l0.023-0.022C0.582 0.054 1.088 0.06 1.398 0.383z"
        android:fillColor="@color/icon_color" />
</vector>

我使用 app:srcCompat="@drawable/wp_ic_camera" 设置了这个 drawable,没有任何背景或色调值,它在数据绑定中使用 AppCompatResources.getDrawable(view.context,drawableRes) 来设置 drawable

用户可以在应用偏好中选择应用主题为亮/暗或系统模式我使用更新主题

 val nightMode = when (theme) {
            AppTheme.DARK -> AppCompatDelegate.MODE_NIGHT_YES
            AppTheme.LIGHT -> AppCompatDelegate.MODE_NIGHT_NO
            AppTheme.SYstem -> AppCompatDelegate.MODE_NIGHT_FOLLOW_SYstem
        }
AppCompatDelegate.setDefaultNightMode(nightMode)

我还使用用户选择的最新主题更新了 ContextThemewrapper

问题是当设备主题为深色且应用主题设置为浅色时,它遵循可绘制颜色的系统主题

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。