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

首頁 > 系統 > Android > 正文

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

2019-10-23 18:33:19
字體:
來源:轉載
供稿:網友

今天工作中遇到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));

 

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


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 恩平市| 江孜县| 平谷区| 晋中市| 临汾市| 论坛| 霸州市| 惠来县| 项城市| 富锦市| 丹凤县| 迭部县| 灵武市| 甘德县| 察雅县| 绥阳县| 济阳县| 公主岭市| 平阳县| 沧源| 屏山县| 宝坻区| 芮城县| 仁化县| 仁寿县| 潼南县| 永寿县| 武夷山市| 南通市| 东丰县| 灵宝市| 洛阳市| 巴青县| 杨浦区| 手游| 铁力市| 新干县| 类乌齐县| 黎城县| 吕梁市| 云龙县|