Справка по использованию ImageSwitcher в Android

#android

#Android

Вопрос:

Итак, в моей программе я использовал Imageviews в своем макете для отображения изображений, и у меня было так, что когда пользователь нажимал Imageview, он менял изображения. Но недавно я обновил свой проект до версии 8 и обновил с помощью SDK, и теперь я вижу, что в разделе Transitions есть представление ImageSwitcher. Я хотел бы заменить мои просмотры изображений на ImageSwitchers. Я погуглил и искал повсюду, но, похоже, не могу понять, как это работает. Мне было интересно, сможет ли кто-нибудь объяснить или показать мне пример кода о том, как его использовать. То, что я хочу, очень просто. Я просто хочу, чтобы он отображал изображение из растрового изображения, а затем, когда пользователь проводит пальцем влево или вправо, он изменяет растровое изображение. У меня уже есть растровые изображения. Я просто не могу разобраться в коде.

Я попытался использовать этот код для начала, но не смог заставить его работать с растровым изображением

 ImageSwitcher is = (ImageSwitcher) findViewById(R.id.imageSwitcher1);
is.setImageResource(bmap);
  

Я пытался использовать этот новый код, чтобы превратить мое растровое изображение в рисованное, но оно всегда вылетает при запуске. Есть ли что-то, что я могу исправить?

 Drawable d = new BitmapDrawable(bmap);
ImageSwitcher is = (ImageSwitcher) findViewById(R.id.imageSwitcher1);
is.setImageDrawable(d);
  

Ответ №1:

setImageResource(int rsid) принимает идентификатор ресурса, поступающего из R class типа R.drawable.foo (быть foo вашего растрового изображения).

Что такое bmap? Реальный экземпляр Bitmap? Если это так, используйте setImageDrawable() вместо

С уважением, JQCorreia

Комментарии:

1. Это реальный экземпляр bitmap, но когда я пытаюсь использовать его следующим образом.setImageDrawable(newbmap), я получаю сообщение об ошибке: «Метод setImageDrawable(Drawable) в типе ImageSwitcher неприменим для аргументов (Bitmap)»

2. Перед этим необходимо обернуть его вокруг BitmapDrawable, потому что Bitmap не является подклассом Drawable. Создайте растровое изображение, подобное BitmapDrawable drawable = new BitmapDrawable(newbmap)

3. Я пробовал это, и всякий раз, когда я пытаюсь отобразить изображение, используя эту строку кода is.setImageDrawable(d); , происходит сбой при запуске приложения, и logcat показывает эту строку как проблему

4. эта строка is.setImageDrawable(d);

Ответ №2:

Попробуйте это,

 is.setImageDrawable(new BitmapDrawable(getResources(),bmap));