iT邦幫忙

2022 iThome 鐵人賽

DAY 22
0

簡介

  • Glide是一個快速高校的Android圖片加載庫,注重於平滑的滾動。Glide提供易用的API,高性能、可擴展的圖片解碼器(decode pipeline),以及自動的資源池技術。
  • Glide==支持獲取、解碼和展示影片快照、圖片、和GIF動畫。==
  • Glide的Api是如此的靈活,開發者甚至可以插入和替換成自己喜愛的任何網路堆(stack)。默認情況下,Glide使用的是一個訂製化的基於HttpUrlConnection的堆,但同時也提供了與Google Volley和==Square OkHttp==快速集成的工具庫。

https://github.com/bumptech/glide

如何使用

添加依賴

  • build.gradle(Module)
dependencies {
    //Glide
    implementation 'com.github.bumptech.glide:glide:4.13.2'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.13.2'
    //OkHttp3
    implementation 'com.github.bumptech.glide:okhttp3-integration:4.13.2'
    ...
}

添加權限

圖像資源通常透過"網路"和"本地資料夾"取得,所以我們需要添加相對應的權限才可操作。

  • AndroidManifest.xml
<manifest ...>
    <!--  允許從網路獲取圖片資源和監聽網路狀態  -->
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <!--  允許從DCIM或圖片等"本地資料夾加載圖片"  -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <!--  允許將緩存"儲存在外部的sdcard上"  -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    ...
</manifest>

簡單使用

一行程式碼即可簡單完用戶發出的大多數請求。

Glide.with(context)     // 獲取上下文
     .load(url)         // 圖片URL
     .into(imagetview)  // 圖片要放置的控件

簡單演示

  • MainActivity.java
Glide.with(this)          
     .load("https://images2.gamme.com.tw/news2/2018/73/41/qZqUoZ6ZkaGYsKU.jpg")
     .into(binding.imageView);
  • activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

上一篇
Day21 - Retrofit + RxJava
下一篇
Day23 - SharedPreferences
系列文
Android 開發 30天 初學之路筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言