首页 > 解决方案 > 如何使用渐变颜色为在bottomNavigationView中选择的图标着色

问题描述

我有带有一些图标的底部导航视图,我希望当有人选择图标时,图标的颜色变为渐变色。

渐变.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:type="linear"
        android:startColor="#ee5f8a"
        android:endColor="#ed8f6d"
        android:angle="0"/>
</shape>

底部导航视图

<android.support.design.widget.BottomNavigationView
        android:id="@+id/nav_view"
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:layout_alignParentBottom="true"
        android:background="?android:attr/windowBackground"
        app:elevation="5dp"
        app:itemIconSize="35dp"
        app:itemIconTint="@color/selector"
        app:labelVisibilityMode="unlabeled"
        app:menu="@menu/bottom_nav_menu" />

选择器.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:color="@color/colorPrimaryDark" 
      android:state_checked="true" />
    <item android:color="#c2bdbf" />

</selector>

标签: androidandroid-layout

解决方案


将此属性添加到BottomNavigationView

app:itemIconTint="@drawable/bottom_selector"

创建一个名为bottom_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="#ff0000"/>
<item android:color="@color/colorPrimaryDark"/>
</selector>

推荐阅读