#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));