1.自定義GlideModule
package com.example.administrator.outeoforderpicture;
import android.content.Context;
import com.bumptech.glide.Glide;
import com.bumptech.glide.GlideBuilder;
import com.bumptech.glide.load.DecodeFormat;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool;
import com.bumptech.glide.load.engine.cache.ExternalCacheDiskCacheFactory;
import com.bumptech.glide.load.engine.cache.LruResourceCache;
import com.bumptech.glide.load.engine.cache.MemoryCache;
import com.bumptech.glide.load.engine.cache.MemorySizeCalculator;
import com.bumptech.glide.module.GlideModule;
/**
* Created by $wu on 2017-12-12 上午 10:06.
* 自定義GlideModule
*/
public class MyGlideModule implements GlideModule {
@Override
public void applyOptions(Context context, GlideBuilder builder) {
//設(shè)置圖片的類型横缔,
builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);
//獲取Glide計(jì)算過得bitmap緩沖池和內(nèi)存的大小(不應(yīng)該隨意配置)
MemorySizeCalculator calculator = new MemorySizeCalculator(context);
int bitmapPoolSize = calculator.getBitmapPoolSize();
int memorySize = calculator.getMemoryCacheSize();
//設(shè)置圖片的bitmap緩存池的大小
BitmapPool bitmapPool = new LruBitmapPool(bitmapPoolSize);
builder.setBitmapPool(bitmapPool);
//設(shè)置內(nèi)存緩存的空間大小
MemoryCache memorySizeCache = new LruResourceCache(memorySize);
builder.setMemoryCache(memorySizeCache);
//外部緩存(Android/包名/cache/glide_cache)
builder.setDiskCache(new ExternalCacheDiskCacheFactory(context, "glide_cache", 40 * 1024 * 1024));
//內(nèi)部(私有)緩存(data/data/包名/cache/image_manager_disk_cache)
// builder.setDiskCache(new InternalCacheDiskCacheFactory(context, 10 * 1024 * 1024));
//自定義緩存
//String downloadDirectoryPath = Environment.getExternalStorageDirectory().getPath();
//builder.setDiskCache(new DiskLruCacheFactory(downloadDirectoryPath, "glide_cache", 10 * 1024 * 1024));
}
@Override
public void registerComponents(Context context, Glide glide) {
}
}
2.在AndroidManifest中聲明GlideModule
<meta-data
android:name="com.example.administrator.outeoforderpicture.MyGlideModule"
android:value="GlideModule" />
3.備注:
1.getCacheDir()的目錄為私有緩存目錄煞额。 (data/data/包名/cache)
2.getExternalCacheDir()目錄為外部緩存目錄酥夭。 (Android/data/包名/cache)
3.Environment.getExternalStorageDirectory 為外部目錄的根目錄衣式。
4.Environment.getExternalStoragePublicDirectory(Enviroment.Directory_Movies) 為外部目錄的movies目錄
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者