Есть два способа сделать это: простой или скучный.
Если вы можете добавить дополнительные зависимости, то я бы настоятельно рекомендовал бы вам воспользоваться простым маршрутом и использовать GreedDroid .Вы можете использовать структуру элементов, которая у них там, или использовать AsyncImageView .Лично я бы использовал последнее.
С другой стороны, скучным способом было бы отключить HttpClient
и загрузить изображение вручную, а затем использовать метод BitmapFactory.decodeStream
для создания Bitmap
.
Загрузка должна происходить вдали от потока пользовательского интерфейса, поэтому может показаться естественным использовать AsyncTask
для запуска всего этого и использовать обработчик для фактического вставления битовой карты в ImageView
(соблюдайте осторожность, чтобы не установить растровое изображение на представление, которое уже было переработано).
К сожалению, во многих реализациях ExecutorService
, который выполняет AsyncTasks, ограничен использованием одного Thread
.Это вызывает неприятное ощущение в Списке, где изображения загружаются одно за другим, а не как можно больше ощущений, которые вы можете ожидать.
В этом случаевы, вероятно, захотите (по сути) бросить свой собственный AsyncTask
.
Я не большой поклонник AsyncTask
с, как вы можете сказать.
Вышетакая обычная задача и такая досадная вещь, чтобы получить право, я очень рекомендую использовать чужую библиотеку.