Glide簡(jiǎn)單使用

1.簡(jiǎn)介

Glide is a fast and efficient open source media management and image loading framework for Android that wraps media decoding, memory and disk caching, and resource pooling into a simple and easy to use interface.
Glide是一款快速高效的Android開源媒體管理和圖像加載框架,它將媒體解碼,內(nèi)存和磁盤緩存以及資源池包裝成簡(jiǎn)單易用的界面。
中文參考文檔:https://muyangmin.github.io/glide-docs-cn/

2.依賴

權(quán)限聲明

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
 <uses-permission android:name="android.permission.INTERNET"/>
 implementation 'com.github.bumptech.glide:glide:4.8.0'
 annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'

3.簡(jiǎn)單使用

多數(shù)情況下,使用Glide加載圖片非常簡(jiǎn)單,一行代碼足矣:

Glide.with(fragment)
    .load(myUrl)
    .into(imageView);
  • 在 Application 模塊中的使用(支持更多功能)
    在 Application 模塊中,可創(chuàng)建一個(gè)添加有 @GlideModule 注解,繼承自 AppGlideModule 的類。此類可生成出一個(gè)流式 API,內(nèi)聯(lián)了更多選項(xiàng)。
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;

@GlideModule
public class MyAppGlideModule extends AppGlideModule {
}

生成的 API 默認(rèn)名為 GlideApp ,與 AppGlideModule 的子類包名相同。在 Application 模塊中將 Glide.with() 替換為 GlideApp.with()

 GlideApp.with(this).load("http://goo.gl/gEgYUd").into(imageView);

  GlideApp
    .with(myFragment)
    .load(url)
    .centerCrop()
    .placeholder(R.drawable.loading_spinner)
    .into(myImageView);

4.緩存策略

  • DiskCacheStrategy.NONE 不緩存文件
  • DiskCacheStrategy.SOURCE 只緩存原圖
  • DiskCacheStrategy.RESULT 只緩存最終加載的圖(默認(rèn)的緩存策略)
  • DiskCacheStrategy.ALL 同時(shí)緩存原圖和結(jié)果圖
GlideApp.with(fragment)
  .load(url)
  .diskCacheStrategy(DiskCacheStrategy.ALL)
  .into(imageView);

5.緩存

GlideApp.with(fragment)
  .load(url)
  .onlyRetrieveFromCache(true) //僅從緩存加載圖片
  .skipMemoryCache(true) //如果你想確保一個(gè)特定的請(qǐng)求跳過磁盤和/或內(nèi)存緩存
  .into(imageView);

6.圓形圖片

  RequestOptions mRequestOptions = RequestOptions.circleCropTransform()
                .skipMemoryCache(true);//不做內(nèi)存緩存

        GlideApp.with(this)
                .load(imgUrl)
                .centerCrop()
                .apply(mRequestOptions)
                .placeholder(R.drawable.ic_launcher_background)//加載中顯示的圖片
                .error(R.drawable.ic_launcher_foreground)// 錯(cuò)誤后顯示的圖片
                .into(mImg);

7.圓角圖片

//設(shè)置圖片圓角角度
RoundedCorners roundedCorners= new RoundedCorners(6);
//通過RequestOptions擴(kuò)展功能,override:采樣率,因?yàn)镮mageView就這么大,可以壓縮圖片,降低內(nèi)存消耗
RequestOptions options=RequestOptions.bitmapTransform(roundedCorners).override(300, 300);
 
GlideApp.with(context)
.load(files.getFilePath())
.apply(options)
.into(img);

Glide 4.0以上支持圓角和圓形圖片,3.0只能通過外庫(kù)支持。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Gilde是一個(gè)常用圖片加載框架,其功能強(qiáng)大使用簡(jiǎn)單,更是得到google的推薦,這篇文章基于3.x版本介紹其簡(jiǎn)單...
    嘎啦果安卓獸閱讀 4,131評(píng)論 0 6
  • Gilde是一個(gè)常用圖片加載框架,其功能強(qiáng)大使用簡(jiǎn)單,更是得到google的推薦,這篇文章基于3.x版本介紹其簡(jiǎn)單...
    lbhl閱讀 1,018評(píng)論 0 0
  • afinalAfinal是一個(gè)android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,893評(píng)論 2 45
  • 一、簡(jiǎn)介 在泰國(guó)舉行的谷歌開發(fā)者論壇上,谷歌為我們介紹了一個(gè)名叫Glide的圖片加載庫(kù),作者是bumptech。這...
    天天大保建閱讀 7,782評(píng)論 2 28
  • 今天的簡(jiǎn)書不同尋常,為了能寫的更順暢一些,打了個(gè)草稿。
    孫岑瑤閱讀 207評(píng)論 0 0

友情鏈接更多精彩內(nèi)容