SetColorFilter устарел на API29Android

Форум для тех, кто программирует под Android
Anonymous
SetColorFilter устарел на API29

Сообщение Anonymous »

Я использую следующую строку, чтобы изменить цвет VectordRawable: < /p>

Код: Выделить всё

mydrawable.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_ATOP)< /code> < /p>

Это работает хорошо, хотя теперь это устарело. Документация предполагает, что я использую: < /p>

mydrawable.getBackground().setColorFilter(new BlendModeColorFilter(color, PorterDuff.Mode.SRC_ATOP))


Хотя Blendmodecolorfilter доступен только на API29. После изучения источника устаревшего метода я понял, что он вызывает: < /p>

new PorterDuffColorFilter()< /code> < /p>

Итак, я пошел вперед и использовал: < /p>

mydrawable.getBackground().setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_ATOP))< /code> < /p>

Раскраска работала. Это правильная замена для устаревшего метода, или я должен использовать BlendModeColorFilter на API29? < /P>

Спасибо. < /P>

Подробнее здесь: https://stackoverflow.com/questions/567 ... d-on-api29

Вернуться в «Android»