Освой Android играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
4-й курс/Закрытая зона
Базовый пример
Заглушки
Анимация замещения картинки
Размер изображения
Анимированные GIF
Видео
Превьюшка
Кэш
Приоритет при загрузке
Загружаем картинки в список
Библиотека Glide является ближайшим конкурентом другой популярной библиотеке Picasso и также предназначена для асинхронной подгрузки изображений котов из сети, ресурсов или файловой системы, их кэширования и отображения. Синтаксис и принцип работы очень схож. Во многом выбор определяется вкусом разработчика.
Но библиотека имеет дополнительную функциональность в виде поддержки анимированных GIF-файлов и видео.
Кстати, Google высоко оценивает качество библиотеки и даже включила её в состав одного шаблона в Android Studio.
Домашняя страница - https://bumptech.github.io/glide/. Исходные коды на Гитхабе.
Библиотека постоянно мигрирует с одной ветки на другую. Сейчас произошёл переход на ветку 4.x. Соответственно, некоторые участки кода перестали работать, нужно сверяться с документацией и смотреть, что изменилось.
В Android Studio прописываем зависимость в Gradle (проверяйте номер свежей версии).
implementation 'com.github.bumptech.glide:glide:4.12.0'
Минимально поддерживаемая версия API 14 (Ice Cream Sandwich).
Для простого примера достаточно указать три метода объекта Glide:
Разместим на экране активности кнопку и ImageView. Напишем пример загрузки изображения с заданного адреса.
package ru.alexanderklimov.glide;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
public class MainActivity extends AppCompatActivity {
private ImageView mImageView;
private String mImageAddress =
"http://developer.alexanderklimov.ru/android/images/android_cat.jpg";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mImageView = findViewById(R.id.imageView);
}
public void onClick(View view) {
// Загружаем картинку
Glide
.with(this)
.load(mImageAddress)
.into(mImageView);
}
}
Загружать можно не только из интернета, но и из ресурсов. Это может быть полезным при интенсивном использовании изображений больших размеров с различными эффектами.
public void onClick(View view) {
int resourceId = R.mipmap.ic_launcher;
Glide
.with(this)
.load(resourceId)
.into(mImageView);
}
Загружаем из файла. В примере опущена проверка на существование файла. Но даже без проверки приложение не закроется с ошибкой, а просто ничего не загрузит.
File file = new File(Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "cat.png");
Glide
.with(this)
.load(file)
.into(mImageView);
Последний вариант связан с Uri. Это может быть адрес в интернете, а также адрес на ресурс.
int resourceId = R.mipmap.ic_launcher_round;
Uri uri = Uri.parse("android.resource://" + this.getPackageName() + "/" + resourceId);
Glide
.with(this)
.load(uri)
.into(mImageView);
Вы вошли на сайт, как гость.
Необходимо зарегистрироваться, чтобы прочитать статью