Итак, у меня есть ListView, что цвет кодирует значок, основанный на приоритете каждого элемента в списке. Например, приоритетные рабочие места имеют красный значок рабочего порядка. Приоритет 2 = желтый и т.д.
Я использую ImageView.setColorFilter(Color.whatever), чтобы изменить цвет значка, и он отлично работает на моей вкладке Samsung Galaxy Tab и HTC Hero, однако, когда я загружаю приложение на HTC Droid Eris, я получаю сообщение об ошибке:
java.lang.NoSuchMethodError:android.widget.ImageView.setColorFilter
Я понятия не имею, почему он отлично работает на все остальное, но не на этом телефоне. Есть идеи? Я думаю, возможно, это может быть связано с тем, что у Эрис есть Android 2.1, тогда как остальные 2,2 или выше. Но я бы не подумал, что такой базовый метод не был включен до 2.2!
Любая помощь приветствуется! Это сообщество всегда помогает, когда я нахожусь в тупике, и Google не вернет какие-либо релевантные результаты! Спасибо заранее!
Если вы посмотрите документацию и фильтруете по версии API, вы увидите, что эта перегрузка:
void setColorFilter(int color)
был представлен в версии API версии 8, которая представляет собой Android 2.2.
Однако существуют другие перегрузки, которые поддерживались ранее:
void setColorFilter(ColorFilter cf)
void setColorFilter(int color, PorterDuff.Mode mode)
Не могли бы вы использовать один из них?
setColorFilter(int color)
был введен в API 8 (версия 2.2).
Существуют две другие версии setColorFilter
, которые существуют с версии 1.0, возможно, вы могли бы использовать их вместо этого?