@lacredin
Программист

Как в layer-list изменить цвет вектора?

Доброго времени суток.
Подскажите, как в ресурсе drawble layer-list изменить цвет векторного изображения?
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:drawable="@color/bacground_color_project_page" />  // это цвет фона

    <item
        android:drawable="@drawable/ic_format_bold_black_48dp"  //вот это векторное изображение
        android:gravity="center"
        android:width="36dp"
        android:height="36dp"
        />
</layer-list>


Мне надо показывать это изображение разными цветами в зависимости от обстоятельств и хочется избежать хранения копий этого изображения в разных цветах. Надеюсь есть способ поменять цвет прямо в теге layer-list.
  • Вопрос задан
  • 843 просмотра
Решения вопроса 1
@lacredin Автор вопроса
Программист
Как изменить цвет из layer-list я не нашёл, но для меня подошёл другой метод.

В векторный файл я добавил android:colorTint, который ссылался на файл drawable с цветами для разных состояний кнопки.

Вот так теперь выглядит код векторного файла
<vector android:height="48dp" android:viewportHeight="24.0"
      android:viewportWidth="24.0" android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android"
      android:tint="@drawable/color_state_toggle_rich_edit_text"
>
<path android:fillColor="#FF000000"
    android:pathData="M3.9,12c0,-1.71 1.39,-3.1 3.1,-3.1h4L11,7L7,7c-2.76,0 -5,2.24 -5,5s2.24,5 5,5h4v-1.9L7,15.1c-1.71,0 -3.1,-1.39 -3.1,-3.1zM8,13h8v-2L8,11v2zM17,7h-4v1.9h4c1.71,0 3.1,1.39 3.1,3.1s-1.39,3.1 -3.1,3.1h-4L13,17h4c2.76,0 5,-2.24 5,-5s-2.24,-5 -5,-5z"/>
 </vector>

Вот так выглядит код файла с цветами (drawable/color_state_toggle_rich_edit_text.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="@android:color/black"
    />
<item
    android:state_checked="false"
    android:color="@color/color_toggle_button"/>

Решение нашёл на этом форуме

stackoverflow.com/questions/43847170/android-how-t...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы