You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android应用启动时矢量Drawable颜色反转问题求助

Android底部导航矢量图颜色模式异常问题

问题现象

  • 浅色模式启动应用时,底部导航的矢量图标显示深色模式对应的浅灰色
  • 切换到深色模式后再切回浅色模式,矢量图标才会显示浅色模式的正常黑色

相关代码

矢量Drawable资源(以ic_home为例)

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="460dp"
    android:height="265dp"
    android:viewportWidth="460"
    android:viewportHeight="270">
  <path
      android:pathData="M139.85,137.51C155.15,142.34 170.44,165.68 170.44,181.78C170.44,197.88 170.44,212.37 170.44,230.08C170.44,247.79 154.34,262.28 136.63,262.28C118.92,262.28 51.3,262.28 35.2,262.28C19.1,262.28 3,247.79 3,231.69C3,215.59 3,197.88 3,181.78C3,165.68 14.79,147.5 33.59,137.51M139.85,137.51C102.02,176.95 57.74,164.07 33.59,137.51M139.85,137.51C147.1,127.85 155.93,111.63 155.95,93.23C155.99,55 122.14,24 86.72,24C51.3,24 17.45,55 17.49,93.23C17.51,111.63 22.1,124.2 33.59,137.51"
      android:strokeWidth="20"
      android:strokeColor="@color/black"/>
  <path
      android:pathData="M280.85,116.5C243.02,155.95 198.74,143.07 174.59,116.5M280.85,116.5C288.1,106.85 296.93,90.63 296.95,72.23C296.99,34 263.14,3 227.72,3C192.3,3 158.45,34 158.49,72.23C158.51,90.63 163.1,103.2 174.59,116.5M280.85,116.5C291.13,119.75 301.4,131.35 307.04,143.5M176.2,241.28C192.3,241.28 259.92,241.28 277.63,241.28C281.01,241.28 284.34,240.75 287.5,239.77M176.2,241.28C173.61,241.28 171.02,240.9 168.5,240.21C171.44,240.94 173.12,241.24 176.2,241.28ZM174.59,116.5C162.97,122.69 154.02,131.99 148.89,142"
      android:strokeWidth="20"
      android:strokeColor="@color/black"/>
  <path
      android:pathData="M422.85,137.51C438.15,142.34 453.44,165.68 453.44,181.78C453.44,197.88 453.44,212.37 453.44,230.08C453.44,247.79 437.34,262.28 419.63,262.28C401.92,262.28 334.3,262.28 318.2,262.28C302.1,262.28 286,247.79 286,231.69C286,215.59 286,197.88 286,181.78C286,165.68 297.79,147.5 316.59,137.51M422.85,137.51C385.02,176.95 340.74,164.07 316.59,137.51M422.85,137.51C430.1,127.85 438.93,111.63 438.95,93.23C438.99,55 405.14,24 369.72,24C334.3,24 300.45,55 300.49,93.23C300.51,111.63 305.1,124.2 316.59,137.51"
      android:strokeWidth="20"
      android:strokeColor="@color/black"/>
</vector>

浅色模式colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
    <color name="black">#FF000000</color>
</resources>

深色模式colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
    <color name="black">#D9D9D9</color>
</resources>

底部导航菜单bottom_navigation_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/HomepageActivity"
        android:icon="@drawable/ic_home"
        android:title="" />

    <item
        android:id="@+id/FollowingActivity"
        android:icon="@drawable/ic_following"
        android:title="" />
    <item
        android:id="@+id/action_logout"
        android:title="" />

    <item
        android:id="@+id/AllChatsActivity"
        android:icon="@drawable/ic_chat"
        android:title="" />

    <item
        android:id="@+id/ProfileActivity"
        android:icon="@drawable/ic_profile"
        android:title="" />
</menu>

布局代码

<com.google.android.material.bottomappbar.BottomAppBar
    android:id="@+id/bottomAppBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:minHeight="?attr/actionBarSize"
    app:contentInsetEnd="0dp"
    app:contentInsetStart="0dp"
    app:fabAlignmentMode="center"
    app:fabCradleMargin="8dp"
    app:fabCradleRoundedCornerRadius="16dp"
    app:hideOnScroll="true">

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottomNavigationView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/foreground"
        app:itemIconSize="30dp"
        app:labelVisibilityMode="unlabeled"
        app:menu="@menu/bottom_navigation_menu" />
</com.google.android.material.bottomappbar.BottomAppBar>

效果对比

  • 预期效果:浅色模式下底部导航图标为黑色,深色模式下为浅灰色
  • 实际效果:浅色模式启动时图标显示浅灰色(对应深色模式颜色),切换到深色模式再切回浅色后,图标才显示正常黑色

已尝试的解决方案

给矢量Drawable添加android:tint="?attr/colorControlNormal",问题未得到解决。


内容的提问来源于stack exchange,提问作者bacan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 07:03:13