溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android圖片加載庫Glide用法是什么

發(fā)布時間:2021-12-14 09:52:54 來源:億速云 閱讀:258 作者:iii 欄目:開發(fā)技術

這篇文章主要講解了“Android圖片加載庫Glide用法是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Android圖片加載庫Glide用法是什么”吧!

Glide介紹

Glide是一個快速高效的Android圖片加載庫,注重于平滑的滾動。Glide提供了易用的API,高性能、可擴展的圖片解碼管道,以及自動的資源池技術。Glide 的主要目標是讓任何形式的圖片列表的滾動盡可能地變得更快、更平滑。

Android SDK 要求

Min Sdk Version - 使用 Glide 需要 min SDK 版本 API 14 (Ice Cream Sandwich) 或更高。

Compile Sdk Version - Glide 必須使用 API 27 (Oreo MR1) 或更高版本的 SDK 來編譯。

Support Library Version - Glide 使用的支持庫版本為 27。

使用前的準備

下載

Jar

你可以直接在 GitHub 下載最新的 jar 包。并且還需要包含 Android v4支持庫 的 jar 包。

Gradle

在build.gradle中加入如下依賴

implementation 'com.github.bumptech.glide:glide:4.12.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'

Maven

如果使用 Maven,同樣可以添加對 Glide 的依賴。再次強調,你依舊需要添加 Android 支持庫的依賴

<dependency>
  <groupId>com.github.bumptech.glide</groupId>
  <artifactId>glide</artifactId>
  <version>4.11.0</version>
  <type>aar</type>
</dependency>
<dependency>
  <groupId>com.google.android</groupId>
  <artifactId>support-v4</artifactId>
  <version>r7</version>
</dependency>
<dependency>
  <groupId>com.github.bumptech.glide</groupId>
  <artifactId>compiler</artifactId>
  <version>4.11.0</version>
  <optional>true</optional>
</dependency>

設置

從網絡中加載圖片

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

從本地存儲中加載圖片

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

基本用法

Glide.with(fragment)//傳遞activity或fragment
    .load(url)//本地地址或網絡地址
    .into(imageView);//ImageView對象

這樣就可以將圖片加載到指定的ImageView中

在 ListView 和 RecyclerView 中的使用

在 ListView 或 RecyclerView 中加載圖片的代碼和在單獨的 View 中加載完全一樣

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    String url = urls.get(position);
    Glide.with(fragment)
        .load(url)
        .into(holder.imageView);
}

占位符

Glide有三種占位符,請求正在執(zhí)行時展示placeholder Drawable,請求失敗則展示error Drawable,請求的url為null,那么會展示fallback url

Glide.with(activity)
    .load(url)
    .placeholder(R.drawable.loading)//請求圖片時展示的圖片
    .error(R.drawable.error)//請求失敗時展示的圖片
    .fallback(R.drawable.fallback)//請求的圖片地址(url)為空時展示的圖片
    .into(imageView);

選項

RequestOptions requestOptions = new RequestOptions()
                .placeholder(R.drawable.loading)
                .error(R.drawable.error);

Glide.with(fragment)
    .load(url)
    .apply(requestOptions)
    .into(imageView);

apply()方法可以被調用多次,因此RequestOption可以被組合使用。如果 RequestOptions對象之間存在相互沖突的設置,那么只有最后一個被應用的RequestOptions會生效。

過渡動畫

在 Glide 中,Transitions 允許你定義 Glide 如何從占位符到新加載的圖片,或從縮略圖到全尺寸圖像過渡。Transition 在單一請求的上下文中工作,而不會跨多個請求。因此,Transitions 并不能讓你定義從一個請求到另一個請求的動畫(比如,交叉淡入效果)

DrawableCrossFadeFactory factory =
        new DrawableCrossFadeFactory.Builder().setCrossFadeEnabled(true).build();

GlideApp.with(context)
    .load(url)
    .apply(requestOptions)
    .transition(withCrossFade(factory))
    .placeholder(R.color.placeholder)
    .into(imageView);

除了交叉淡入效果,你也可以自定義

變換效果

當url地址為png時可能無法變換

RequestOptions requestOptions = new RequestOptions()
                .placeholder(R.drawable.loading)
                .error(R.drawable.error);

Glide.with(MainActivity.this)
    .load(url)
    .apply(requestOptions)
    .transform(new CircleCrop())//圓角圖片
//  .transform(new RoundedCorners(30))//圓形圖片角度統一
//  .transform(new GranularRoundedCorners(30, 50, 70, 80))//四個角單獨指定角度
//  .transform(new Rotate(90))//順時針旋轉角度    
    .into(imageView);

圓角變換效果

Android圖片加載庫Glide用法是什么

順時針旋轉效果

Android圖片加載庫Glide用法是什么

使用示例

loading, error是提前下載到本地的圖片,放在drawable中;url可以是一個網絡圖片的地址

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String url = "url of picture";
      	ImageView imageView = findViewById(R.id.image_view);
        Glide.with(this)
                .load(url)
                .placeholder(R.drawable.loading)
                .error(R.drawable.error)
                .into(imageView);
    }
}

布局文件

<?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/image_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

權限設置如下

   <uses-permission android:name="android.permission.INTERNET" />
   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

下圖是加載網絡地址的情況。左圖傳入了錯誤的網絡地址,那么就會展示error圖;如果傳入的網絡圖片地址正確,那么就會將正確的圖片放入ImageView中;而在圖片加載未完成時,該ImageView會展示出loading圖

Android圖片加載庫Glide用法是什么

感謝各位的閱讀,以上就是“Android圖片加載庫Glide用法是什么”的內容了,經過本文的學習后,相信大家對Android圖片加載庫Glide用法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI