国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android中Glide加載圖片并實現圖片緩存

2019-12-12 03:15:01
字體:
來源:轉載
供稿:網友

今天工作中遇到Glide的緩存問題,之前在項目中一直用Glide加載本地及網絡圖片,但是沒有考慮過緩存的問題,但是需求中需要提到了,所以在網上查了一下,再這里和大家簡單的分享一下Glide的使用方法以及緩存
首先,Glide是Github上開源的一個圖片庫,作者是bumptech,所以要使用的話,必須添加依賴:

compile 'com.github.bumptech.glide:glide:3.6.1'

加載方式:

 Glide.with(context)  .load("https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/logo_white_fe6da1ec.png") .into(image); 

加載方式很簡單,load加載url,into綁定控件。context,支持Activity,fragment,并與活動的生命周期保持一致,在onPause()暫停加載,onResume()恢復加載

其次,并不僅僅如此:

復制代碼 代碼如下:

Glide.with(this).load("url").crossFade().placeholder(R.drawable.ic_user).error(R.drawable.ic_user).into(ivUser);

Glide還可以通過crossFade()來設置加載動畫,placeholder()默認加載圖片,error()加載出錯圖片等等,另外還支持圖片邊界縮放,例如centerCrop,fitCenter

復制代碼 代碼如下:

Glide.with(this).load("url").centerCrop().error(R.drawable.ic_user).into(ivUser);

最后,Glide支持圖片緩存

復制代碼 代碼如下:

Glide.with(this).load(“url”).diskCacheStrategy(DiskCacheStrategy.ALL).crossFade().centerCrop().error(R.drawable.ic_user).into(ivUser);

添加diskCacheStrategy(DiskCacheStrategy.ALL)就支持硬盤緩存了,因為Glide硬盤緩存會為不同寬高的同一張圖片進行二次緩存,所以需要設置DiskCacheStrategy.ALL,它會在下次加載的時候將全尺寸的圖片取出,根據設置的大小,在緩存。

如果你不想從緩存中讀取的話,Glide還提供了skipMemoryCache(boolean)方法,是否跳過緩存,哈哈,是不是很全呢?

以上是Glide的一些簡單使用方法,僅供參考。

當然Glide還可以設置大小,路徑,格式等

1 創建GlideModule

package com.mypackage;public class MyGlideModule implements GlideModule {  @Override public void applyOptions(Context context, GlideBuilder builder) {    // Apply options to the builder here.  }  @Override public void registerComponents(Context context, Glide glide) {    // register ModelLoaders here.  }}

2 在清單文件中添加meta-data tag標簽

<manifest ...>  <!-- ... permissions -->  <application ...>    <meta-data      android:name="com.mypackage.MyGlideModule"      android:value="GlideModule" />    <!-- ... activities and other components -->  </application></manifest>

3 混淆

-keepnames class com.mypackage.MyGlideModule# or more generally:#-keep public class * implements com.bumptech.glide.module.GlideModule

4 設置硬盤緩存大小

builder.setDiskCache(new InternalCacheDiskCacheFactory(context, yourSizeInBytes));

5 設置緩存位置

你可以使用內置的internalcachediskcachefactory放置你的緩存在應用程序內部緩存目錄:

復制代碼 代碼如下:

builder.setDiskCache(new InternalCacheDiskCacheFactory(context, cacheDirectoryName, yourSizeInBytes));

您還可以使用內置的externalcachediskcachefactory放置你的緩存在應用程序中的公共緩存目錄的SD卡:

復制代碼 代碼如下:

builder.setDiskCache(new ExternalCacheDiskCacheFactory(context, cacheDirectoryName, yourSizeInBytes));

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永登县| 贵定县| 马公市| 荣成市| 承德市| 禹州市| 元阳县| 灯塔市| 城固县| 舟山市| 山东省| 丰镇市| 沧源| 长阳| 柳林县| 泊头市| 资中县| 伊通| 汾西县| 乐都县| 平原县| 贺州市| 胶南市| 东台市| 穆棱市| 古交市| 汶川县| 徐闻县| 奉新县| 宝鸡市| 理塘县| 凤凰县| 玉林市| 阳信县| 子长县| 依兰县| 朝阳市| 明光市| 湘西| 开鲁县| 通山县|