как закрасить значок, выбранный в bottomNavigationView с помощью градиентного цвета - PullRequest
0 голосов
/ 30 марта 2019

У меня есть bottomNavigationview с некоторым значком, и я хочу, чтобы, когда кто-либо выбирал значок, цвет значка менялся на градиентный.*

selector.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>

Ответы [ 2 ]

0 голосов
/ 30 марта 2019

Для создания градиентного фона необходим селектор, который можно рисовать, а не селектор цвета.

drawable / selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/gradient" android:state_checked="true" />
</selector>

drawable / radius.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:itemBackground="@drawable/selector"
    app:labelVisibilityMode="unlabeled"
    app:menu="@menu/bottom_nav_menu" />
0 голосов
/ 30 марта 2019

Добавьте этот атрибут к 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...