Цвет заливки векторных объектов, которые являются значками в диалоговых окнах или на панелях инструментов.
Что если я захочу использовать векторные рисунки в качестве значков в диалогах или логотипы на панелях инструментов? Тогда я бы использовал их так:
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);