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

Опубликовано: 1 Декабря, 2021

UIL (универсальный загрузчик изображений) - это библиотека, аналогичная библиотеке Picasso и Glide, которая выполняет загрузку изображений с любого веб-адреса в ImageView для Android. Эта библиотека загрузки изображений была создана, чтобы предоставить мощное, гибкое и настраиваемое решение для загрузки изображений в Android с сервера. Эта библиотека загрузки изображений создается независимым разработчиком и присутствует в верхнем списке GitHub. Особенности библиотеки UIL (универсальный загрузчик изображений):

  • Эта библиотека обеспечивает многопоточную загрузку изображений.
  • Кэширование изображений может выполняться в памяти и на устройстве пользователя.
  • Прослушивание процесса загрузки (включая прогресс загрузки).
  • Для каждого вызова изображения на дисплее доступно множество настраиваемых функций.

Note that we are going to implement this project using the Java language. 

Пошаговая реализация

Шаг 1. Создайте новый проект

Чтобы создать новый проект в Android Studio, обратитесь к разделу «Как создать / запустить новый проект в Android Studio». Обратите внимание, что выберите Java в качестве языка программирования.

Шаг 2: Добавьте зависимость библиотеки изображений UIL в файл build.gradle.

Перейдите к скриптам gradle, а затем на уровень build.gradle (модуль). Добавьте строку ниже в файле build.gradle в раздел зависимостей.

implementation ‘com.nostra13.universalimageloader:universal-image-loader:1.9.5’

Шаг 3. Добавьте разрешение в Интернет в файл AndroidManifest.xml

Перейдите в приложение> Манифест, чтобы открыть файл манифеста.

XML

<? xml version = "1.0" encoding = "utf-8" ?>
< manifest xmlns:android = " http://schemas.android.com/apk/res/android "
package = "com.gtappdevelopers.camviewlibrary" >
<!--Permission for internet-->
< uses-permission android:name = "android.permission.INTERNET" />
< uses-permission android:name = "android.permission.ACCESS_NETWORK_STATE" />
< application
android:allowBackup = "true"
android:icon = "@mipmap/ic_launcher"
android:label = "@string/app_name"
android:roundIcon = "@mipmap/ic_launcher_round"
android:supportsRtl = "true"
android:theme = "@style/Theme.CamViewLibrary" >
< activity android:name = ".MainActivity" >
< intent-filter >
< action android:name = "android.intent.action.MAIN" />
< category android:name = "android.intent.category.LAUNCHER" />
</ intent-filter >
</ activity >
</ application >
</ manifest >

Шаг 4: Создайте новый ImageView в своем activity_main.xml.

Перейдите к приложению> res> layout, чтобы открыть файл activity_main.xml. Ниже приведен код файла activity_main.xml.

XML

<? xml version = "1.0" encoding = "utf-8" ?>
< RelativeLayout
android:layout_width = "match_parent"
android:layout_height = "match_parent"
tools:context = ".MainActivity" >
<!--Image view for loading our image-->
< ImageView
android:id = "@+id/idImageView"
android:layout_width = "200dp"
android:layout_height = "200dp"
android:layout_centerInParent = "true"
android:contentDescription = "@string/app_name" />
</ RelativeLayout >

Шаг 5. Инициализируйте свой ImageView и используйте UIL (универсальный загрузчик изображений) в файле MainActivity.java.

Перейдите к приложению> java> имя вашего пакета приложений> файл MainActivity.java. Ниже приведен код файла MainActivity.java. Комментарии добавляются внутри кода для более подробного понимания кода.

Ява

import android.os.Bundle;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
public class MainActivity extends AppCompatActivity {
private ImageView img;
DisplayImageOptions options;
ImageLoader imageLoader;
@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// initialize image loader before using
imageLoader = ImageLoader.getInstance();
imageLoader.init(ImageLoaderConfiguration.createDefault(getApplicationContext()));
// initialize imageview from activity_main.xml
img = findViewById(R.id.idImageView);
// URL for our image that we have to load..
// with below method we are setting display option for our image..
options = new DisplayImageOptions.Builder()
// stub image will display when your image is loading
.showStubImage(R.drawable.ic_launcher_foreground)
// below image will be displayed when the image url is empty
.showImageForEmptyUri(R.drawable.ic_launcher_background)
// cachememory method will caches the image in users external storage
.cacheInMemory()
// cache on disc will caches the image in users internal storage
.cacheOnDisc()
// build will build the view for displaying image..
.build();
// below method will display image inside our image view..
imageLoader.displayImage(imageUri, img, options, null );
}
}

Note: All drawables are present in the drawable folder. You can add the drawable in the drawable folder. To access the drawable folder. Navigate to app > res > drawables > this folder is having all your drawables. 

Выход:

Хотите более динамичную и конкурентную среду для изучения основ Android?
Щелкните здесь, чтобы перейти к уникальному руководству, составленному нашими экспертами с целью мгновенно подготовить вашу отрасль!