March 11, 2012

#6 - Universal Image Loader. Часть 3 - Использование [RU+EN]

English version - "Universal Image Loader. Part 3 - Usage"

Предыдущие статьи:
    В прошлой статье мы проинициализировали ImageLoader конфигурацией и теперь он готов к непосредственному использованию по назначению.
    Для этого он имеет 4 перегруженных метода:
void displayImage(String url, ImageView view)
void displayImage(String url, ImageView view, DisplayImageOptions options)
void displayImage(String url, ImageView view, ImageLoadingListener listener)
void displayImage(String url, ImageView view, DisplayImageOptions options, ImageLoadingListener listener)

#5 - Universal Image Loader. Часть 2 - Конфигурация [RU+EN]

English version - "Universal Image Loader. Part 2 - Configuration"

Предыдущая статья: "Universal Image Loader. Part 1 - Введение"

    Все манипуляции проходят посредством класса ImageLoader. Это singletone, поэтому чтобы получить единственный экземпляр класса надо вызвать метод getInstance(). Перед использованием ImageLoader'а по назначению (для отображения картинок), необходимо проинициализировать его конфигурацией - ImageLoaderConfiguration, с помощью метода init(...). Ну а дальше можно со спокойной душой юзать все вариации метода displayImage(...).

    В общем, самый простой вариант использования ImageLoader'a (с конфигурацией по умолчанию) представлен ниже:
ImageView imageView = ... // вьюха, где будет отображать картинку
String imageUrl = ... // URL картинки (н-р: "http://site.com/image.png", "file:///mnt/sdcard/img/image.jpg")

ImageLoader imageLoader = ImageLoader.getInstance(); // Получили экземпляр
imageLoader.init(ImageLoaderConfiguration.createDefault(context)); // Проинициализировали конфигом по умолчанию
imageLoader.displayImage(imageUrl, imageView); // Запустили асинхронный показ картинки
   
    А теперь рассмотрим полный функционал.

#4 - Universal Image Loader. Часть 1 - Введение [RU+EN]

English version - "Universal Image Loader. Part 1 - Introduction"

    При разработке приложений под Android довольно часто можно столкнуться с задачей отображения некоего графического контента из интернета. Поэтому снова и снова приходится  обеспечивать загрузку изображений из сети, их обработку и отображение в условиях ограниченности оперативной памяти. И несмотря на однородность задачи каждый новый проект накладывает на задачу свои специфические требования: возможно нужно организовать кэширование загруженных картинок; если картинки довольно большие, то необходимо обеспечить эффективную работу с памятью для предотвращения злополучной ошибки OutOfMemoryError; возможно во время загрузки изображения нужно показывать картинку-заглушку; а может одну и ту же картинку надо будет отображать в разных размерных вариациях; и т.д. В результате тратятся время и ресурсы на адаптацию программного кода под специфические нужды. Именно данная проблематика и подтолкнула меня к созданию библиотеки с открытым исходным кодом - Universal Image Loader, целью которой является универсализация решения вышеописанной задачи в виде гибкого и конфигурируемого инструмента.
    На данный момент библиотеку можно использовать повсеместно, где надо загрузить и отобразить (и возможно ещё закэшировать) картинку из интернета или из файловой системы смартфона. Классические примеры возможности применения ImageLoader'а - это списки, таблицы, галереи, где необходимо отображать изображения из сети.