Как использовать библиотеку загрузчика изображений Glide в приложениях для Android?
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);