Цвет заливки векторных объектов, которые являются значками в диалоговых окнах или на панелях инструментов.

Что если я захочу использовать векторные рисунки в качестве значков в диалогах или логотипы на панелях инструментов? Тогда я бы использовал их так:

alertDialogBuilder.setIcon(R.drawable.my_vector_drawable);
toolbar.setLogo(R.drawable.my_vector_drawable);
toolbar.setNavigationIcon(R.drawable.my_vector_drawable);
...

Я прав?

Но тут возникает вопрос: как я могу изменить их цвет заливки без изменения векторных XML-файлов?

Для примера, я могу изменить цвет заливки любого вектора, который используется, используя тег "tint" в xml или метод "setColorFilter()" в коде.

1 ответ

Решение

Если вы хотите изменить цвет заливки, а не изменить XML-файл, вы должны создать Drawable экземпляры этого файла. Этот экземпляр поможет вам изменить ваш файл.

например:

Drawable myIcon = ContextCompat.getDrawable(this,R.drawable.my_vector_drawable);

    myIcon.setColorFilter(ContextCompat.getColor(this, R.color.yourcolor));

    alertDialogBuilder.setIcon(myIcon);
    toolbar.setLogo(myIcon);
    toolbar.setNavigationIcon(myIcon);
Другие вопросы по тегам