2014-01-18 4 views
0

Я пишу приложение для Android, и моя текущая задача - загрузить изображение из URL-адреса и отобразить его в ImageView. Что я сделал до сих пор: мне удалось загрузить изображение и сохранить его как растровое изображение. Теперь, когда я хочу, чтобы добавить его в намерение с помощьюОтображение изображения из Интернета с помощью android

intentRecord.putExtra("Data",(DownloadDataImage) result); 

где результат моего растрового изображения, я получаю сообщение об ошибке, потому что растровое изображение не сериализации, и .putExtra() требует сериализуемой вводы. Вы, ребята, знаете обо мне? Я не знаю, как правильно обойти мою проблему.

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

Thx много для вашей помощи!

ответ

0

вы можете использовать внешнюю библиотеку, как Universal Image Loader и вам не придется беспокоиться об управлении кэшем и других вещах ...

1

Я предлагаю вам попробовать picasso делать тяжелую работу обработки/кэширование изображений. Как только у вас есть фляга в вашей рабочей области, вам просто нужна одна строка кода

Picasso.with (context) .load (image_url) .into (imageView);

1

Поскольку существует верхняя граница размера того, что может быть добавлено в дополнительные функции Intent, вы должны изучить другой способ получения изображения в своем ImageView.

На очень высоком уровне шаги, это может быть:

  • IntentService загрузки изображения и сохраняет его где-то, что это глобально доступным (кэш-памяти или на диске).
  • После того, как загрузка завершена, и служба где-то сохранила изображение, она отправляет широковещательную передачу, чтобы BroadcastReceivers в вашем приложении знали, что изображение теперь доступно.
  • Передатчик BroadcastReceiver в действии или фрагменте, который размещает ваш ImageView, затем извлекает изображение из сохраненного местоположения и помещает его в ImageView (если с диска, то не забудьте сделать это извлечение из основного потока).

Как отмечают другие ответчики, существуют рамки, которые выполняют большую часть этой работы. Picasso, как предложено droidx, является отличным решением, которое легко реализовать и, вероятно, будет вашим лучшим выбором.

+0

thx brandon и droidx, я попробую пикассо, надеюсь, что он отлично работает для меня, как и для вас. но пока это звучит здорово! – PKlumpp

Смежные вопросы