Как использовать библиотеку загрузчика изображений Glide в приложениях для Android?

Опубликовано: 13 Июля, 2021

Glide, как и Picasso, может загружать и отображать изображения из многих источников, а также заботиться о кешировании и снижении нагрузки на память при выполнении манипуляций с изображениями. Официальные приложения Google (например, приложение для Google I / O 2015) используют Glide. В этой статье мы собираемся изучить функциональные возможности Glide и узнать, почему он лучше в некоторых аспектах.

Glide - это библиотека загрузчика изображений для Android, разработанная bumptech и рекомендованная Google. Он использовался во многих проектах Google с открытым исходным кодом, включая официальное приложение Google I / O 2014. Он обеспечивает поддержку анимированных GIF и обрабатывает загрузку / кеширование изображений. Поддержка анимированных GIF в настоящее время не реализована в Picasso. Да, изображения играют важную роль в том, чтобы сделать пользовательский интерфейс приложения более интерактивным и удобным для пользователя. Итак, как разработчик Android, мы должны позаботиться об использовании изображений в App. Мы должны обрабатывать различные аспекты изображения, такие как медленное не отвечающее изображение, проблемы с памятью, ошибки загрузки и многое другое. Если вы не обрабатываете эти аспекты в своем приложении, оно произведет плохое впечатление на ваших пользователей.

Как использовать Android-библиотеку Glide?

1. Для использования Glide в проекте android нам нужно добавить зависимость в файл gradle. Итак, для добавления зависимости откройте файл app / build.gradle в папке приложения в вашем проекте Android и добавьте в него следующие строки.

dependencies {

   implementation ‘com.github.bumptech.glide:glide:4.11.0’

   annotationProcessor ‘com.github.bumptech.glide:compiler:4.11.0’

}

Glide также нуждается в Android Support Library v4, пожалуйста, не забудьте также импортировать support-v4 в свой проект, как указано выше. Но это не проблема, поскольку Android Support Library v4 в основном необходима в каждом проекте Android нового поколения. Теперь снова синхронизируйте свой градиент. Если вы получили ошибку любого типа, вы можете проверить ее в stackoverflow.

2. Теперь добавьте InternetPermission в файл AndroidManifest.xml. Откройте файл manifest.xml и добавьте следующую строку.

<uses-permission android:name=”android.permission.INTERNET”/>

3. Откройте файл макета для основного действия. Нам нужно добавить ImageView в макет. Это не должно быть необычно. Следующий фрагмент кода показывает, что я имею в виду.

ImageView

       android:layout_width=”wrap_content”



       android:layout_height=”wrap_content”

       android:id=”@+id/imageView”

       android:layout_alignParentTop=”true”

       android:layout_centerHorizontal=”true”

4. Теперь перейдите к основному файлу Activity и добавьте следующий блок кода в метод onCreate () .

ImageView imageView = (ImageView) findViewById(R.id.imageView);

       Glide.with(context)

            .load(“YOUR IMAGE URL HERE”)

            .into(imageView)

            .error(R.drawable.imagenotfound);

В первой строке мы получаем экземпляр ImageView из макета. Затем загрузите изображение с указанного выше удаленного URL-адреса с помощью библиотеки Glide.

Расширенное использование

Для любого приложения реального времени мы должны продумать все возможные случаи. В приведенном выше коде мы просто сохраняем изображение с серверной ссылки в imageView. Есть еще несколько случаев.

  • Изменить размер

 Glide.with(context)

   .load(“YOUR IMAGE URL HERE”)

   .override(300, 200)

   .error(R.drawable.imagenotfound)

   .into(imageView);

Здесь мы используем Glide для получения удаленного изображения и переопределения (изменения размера) его перед отображением в представлении изображения.

  • Заполнитель

Glide.with(context)

   .load(“YOUR IMAGE URL HERE”)

   .placeholder(R.drawable.placeholder)

   .into(imageView);

Если ваше приложение полагается на удаленные ресурсы, важно добавить запасной вариант в виде изображения-заполнителя. Изображение-заполнитель отображается сразу и заменяется удаленным изображением, когда Glide завершает его выборку.

  • Обработка ошибок

Glide.with(context)

   .load(“YOUR IMAGE URL HERE”)

   .placeholder(R.drawable.placeholder)

   .error(R.drawable.imagenotfound)

   .into(imageView);

Мы уже видели, как работает метод заполнителя, но есть также метод ошибки, который принимает изображение заполнителя. Glide трижды попытается загрузить удаленное изображение и отобразит изображение-заполнитель ошибки, если не удалось получить удаленный ресурс.

  • Поддержка GIFS

GlideDrawableImageViewTarget imagePreview = new GlideDrawableImageViewTarget(imageView);

Glide.with(this).load(url).listener(new RequestListener() {  

               @Override  

               public boolean onException(Exception e, String model, Target target, boolean isFirstResource) {                        

                   return false;  

               }  

               @Override  

               public boolean onResourceReady(GlideDrawable resource, String model, Target target, 

                                                                    boolean isFromMemoryCache, boolean isFirstResource) {

                   return false;  

               }  

           }).into(imagePreview);

  • Эффекты
    Размытие изображения:

Glide.with(context)

   .load(“YOUR IMAGE URL HERE”)

   .bitmapTransform(new BlurTransformation(context))

   .into(imageView);

  • Множественное преобразование:

Glide.with(context)

   .load(“YOUR IMAGE URL HERE”)

   .bitmapTransform(new BlurTransformation(context, 25), new CropCircleTransformation(context))

   .into(imageView);

  • Круглый урожай:

Glide.with(context)

   .load(“YOUR IMAGE URL HERE”)

   .bitmapTransform(new CropCircleTransformation(context))

   .into(imageView);

  • Закругленные углы:

 int radius = 50;  

int margin = 20;

Glide.with(context)

   .load(“YOUR IMAGE URL HERE”)

   .bitmapTransform(new RoundedCornersTransformation(context, radius, margin))

   .into(imageView);