Код: Выделить всё
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
Мобильная версия