Android中Glide加載圖片并實(shí)現(xiàn)圖片緩存
今天工作中遇到Glide的緩存問題,之前在項(xiàng)目中一直用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ù)加載
其次,并不僅僅如此:
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
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)就支持硬盤緩存了,因?yàn)镚lide硬盤緩存會為不同寬高的同一張圖片進(jìn)行二次緩存,所以需要設(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)部緩存目錄:
builder.setDiskCache(new InternalCacheDiskCacheFactory(context, cacheDirectoryName, yourSizeInBytes));
您還可以使用內(nèi)置的externalcachediskcachefactory放置你的緩存在應(yīng)用程序中的公共緩存目錄的SD卡:
builder.setDiskCache(new ExternalCacheDiskCacheFactory(context, cacheDirectoryName, yourSizeInBytes));
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android開發(fā)實(shí)現(xiàn)圖片的上傳下載
這篇文章主要為大家詳細(xì)介紹了Android開發(fā)實(shí)現(xiàn)圖片的上傳下載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-09-09
Android 2d游戲開發(fā)之貪吃蛇基于surfaceview
這篇文章主要介紹了Android 2d游戲開發(fā)基于surfaceview的貪吃蛇,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09
Android viewpager 3D畫廊的實(shí)現(xiàn)方法
ViewPager在開發(fā)中的使用頻率非常的高,接下來通過本文給大家分享android viewpager 3D畫廊的實(shí)現(xiàn)方法,需要的朋友參考下吧2017-02-02
Android基于TextView實(shí)現(xiàn)的跑馬燈效果實(shí)例
這篇文章主要介紹了Android基于TextView實(shí)現(xiàn)的跑馬燈效果,以完整實(shí)例形式分析了Android使用TextView通過屬性設(shè)置及功能代碼實(shí)現(xiàn)跑馬燈效果的相關(guān)技巧,需要的朋友可以參考下2016-02-02
Android Button的基本用法詳解及簡單實(shí)例
這篇文章主要介紹了Android Button的基本用法詳解及簡單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-02-02
Android編程之微信SDK分享功能過程步驟詳細(xì)分析
這篇文章主要介紹了Android編程之微信SDK分享功能過程步驟詳細(xì)分析,較為詳細(xì)的分析了Android微信SDK分享功能的原理、步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下2015-10-10
Android實(shí)現(xiàn)短信加密功能(發(fā)送加密短信、解密本地短信)
這篇文章主要介紹了android實(shí)現(xiàn)短信加密功能的相關(guān)資料,功能包括發(fā)送加密短信、解密本地短信,感興趣的小伙伴們可以參考一下2016-01-01

