Библиотека загрузки изображений Fresco в Android с примером
Fresco - одна из самых известных библиотек загрузки изображений с URL-адресов в Android. Это мощная библиотека для отображения и управления изображениями из URL-адресов. Эта библиотека может загружать изображения с устройств пользователей, серверов и других локальных источников. Самая важная особенность этой библиотеки - показывать изображение-заполнитель, когда изображение из URL-адреса загружается очень долго. Наряду с этим мы можем использовать изображение с ошибкой, когда изображение не отображается из-за какой-либо проблемы. Для сохранения данных и ЦП эта библиотека использует три уровня кеш-памяти, два из которых находятся в памяти, а один - во внутренней памяти. Вы можете проверить официальную документацию Fresco.
Реализация этой библиотеки
Ниже приводится образец изображения, чтобы понять, что мы собираемся делать в этой статье. Обратите внимание, что мы собираемся реализовать этот проект на языке Java.
Пошаговая реализация
Шаг 1. Создайте новый проект
Чтобы создать новый проект в Android Studio, обратитесь к разделу «Как создать / запустить новый проект в Android Studio». Обратите внимание, что выберите Java в качестве языка программирования.
Шаг 2: Добавьте зависимость библиотеки Fresco Image в файл build.gradle
Перейдите к скриптам gradle, а затем к уровню build.gradle (модуль). Добавьте строку ниже в файл build.gradle в разделе зависимостей.
implementation ‘com.facebook.fresco:fresco:2.3.0’
Шаг 3. Добавьте разрешение в Интернет в файл AndroidManifest.xml
Перейдите в приложение> Манифест, чтобы открыть файл манифеста.
XML
<? xml version = "1.0" encoding = "utf-8" ?> package = "com.gtappdevelopers.frescoimageloading" > <!--Permission for internet--> < uses-permission android:name = "android.permission.INTERNET" /> <!--Permission for Network State--> < 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.FrescoImageLoading" > < 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. Создайте новый SimpleDraweeView в своем activity_main.xml
Перейдите к приложению> res> layout, чтобы открыть файл activity_main.xml. Ниже приведен код файла activity_main.xml.
XML
<? xml version = "1.0" encoding = "utf-8" ?> < androidx.constraintlayout.widget.ConstraintLayout android:layout_width = "match_parent" android:layout_height = "match_parent" tools:context = ".MainActivity" > <!--To implement ImageView--> <!--Constraints are given to align image centrally of the view--> <!--Scale type centre crop is given to crop image centrally--> < com.facebook.drawee.view.SimpleDraweeView android:id = "@+id/idSDimage" android:layout_width = "match_parent" android:layout_height = "300dp" android:layout_margin = "10dp" android:scaleType = "centerCrop" app:layout_constraintBottom_toBottomOf = "parent" app:layout_constraintLeft_toLeftOf = "parent" app:layout_constraintRight_toRightOf = "parent" app:layout_constraintTop_toTopOf = "parent" /> </ androidx.constraintlayout.widget.ConstraintLayout > |
Шаг 5. Инициализируйте и используйте SimpleDraweeView в файле MainActivity.java
Перейдите к приложению> java> имя вашего пакета приложений> файл MainActivity.java. Ниже приведен код файла MainActivity.java. Комментарии добавляются внутри кода для более подробного понимания кода.
Ява
import android.net.Uri; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; import com.facebook.drawee.backends.pipeline.Fresco; import com.facebook.drawee.view.SimpleDraweeView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); // initialize Fresco before setting view. Fresco.initialize( this ); setContentView(R.layout.activity_main); // below line is having image url to be added.. SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.idSDimage); draweeView.setImageURI(imageUri); } } |
Выход:
Note: In case you are updated to Android Studio 4 you may face this error (NDK at ~/Library/Android/sdk/ndk-bundle did not have a source.properties file) during building the project. Please refer to this for fixing the error.