欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android中Glide加載圖片并實現(xiàn)圖片緩存

 更新時間:2017年03月29日 10:10:07   作者:隔壁小王66  
本篇文章主要介紹了Android中Glide加載圖片并實現(xiàn)圖片緩存,這里和大家簡單的分享一下Glide的使用方法以及緩存 ,有興趣的可以了解一下。

今天工作中遇到Glide的緩存問題,之前在項目中一直用Glide加載本地及網(wǎng)絡(luò)圖片,但是沒有考慮過緩存的問題,但是需求中需要提到了,所以在網(wǎng)上查了一下,再這里和大家簡單的分享一下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()恢復(fù)加載

其次,并不僅僅如此:

復(fù)制代碼 代碼如下:

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

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

復(fù)制代碼 代碼如下:

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

最后,Glide支持圖片緩存

復(fù)制代碼 代碼如下:

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

添加diskCacheStrategy(DiskCacheStrategy.ALL)就支持硬盤緩存了,因為Glide硬盤緩存會為不同寬高的同一張圖片進行二次緩存,所以需要設(shè)置DiskCacheStrategy.ALL,它會在下次加載的時候?qū)⑷叽绲膱D片取出,根據(jù)設(shè)置的大小,在緩存。

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

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

當(dāng)然Glide還可以設(shè)置大小,路徑,格式等

1 創(chuàng)建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標(biāo)簽

<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 設(shè)置硬盤緩存大小

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

5 設(shè)置緩存位置

你可以使用內(nèi)置的internalcachediskcachefactory放置你的緩存在應(yīng)用程序內(nèi)部緩存目錄:

復(fù)制代碼 代碼如下:

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

您還可以使用內(nèi)置的externalcachediskcachefactory放置你的緩存在應(yīng)用程序中的公共緩存目錄的SD卡:

復(fù)制代碼 代碼如下:

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論