Ошибка NoSuchMethod для ImageView.setColorFilter

1

Итак, у меня есть 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 не вернет какие-либо релевантные результаты! Спасибо заранее!

Теги:

2 ответа

4
Лучший ответ

Если вы посмотрите документацию и фильтруете по версии API, вы увидите, что эта перегрузка:

void setColorFilter(int color)

был представлен в версии API версии 8, которая представляет собой Android 2.2.

Однако существуют другие перегрузки, которые поддерживались ранее:

void setColorFilter(ColorFilter cf)
void setColorFilter(int color, PorterDuff.Mode mode)

Не могли бы вы использовать один из них?

  • 0
    Отлично! Спасибо! Я на самом деле только что наткнулся на это, когда получил электронное письмо, в котором говорилось, что вы отправили ответ! Спасибо за быстрый отзыв! Ужасно пытаться отследить, в какой версии была выпущена каждая вещь (в настоящее время это единственный метод, который не позволяет мне выпустить приложение для API уровня 7, поэтому мне, возможно, придется просто изменить его)
1

setColorFilter(int color) был введен в API 8 (версия 2.2).

Существуют две другие версии setColorFilter, которые существуют с версии 1.0, возможно, вы могли бы использовать их вместо этого?

  • 0
    Спасибо! Вместо этого я буду использовать метод (int color, PorterDuff.Mode mode). Я принимаю ответ Джона Скита, хотя просто потому, что он писал быстрее, но я определенно оценил помощь!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню