android自定义Glide图片加载(以更改Glide缓存路径和使用ARGB_8888的图片格式为例)

首先引入Glide:

  compile 'jp.wasabeef:glide-transformations:2.0.1'

自定义GlideModule

package tsou.cn.glidetest.Glide;

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.cache.ExternalCacheDiskCacheFactory;
import com.bumptech.glide.module.GlideModule;

/**
 * 自定义模块
 * 

* 目前Glide还无法识别我们自定义的MyGlideModule, * 如果想要让它生效, * 还得在AndroidManifest.xml文件当中加入如下配置才行 */ public class MyGlideModule implements GlideModule { /** * setMemoryCache() * 用于配置Glide的内存缓存策略,默认配置是LruResourceCache。 *

* setBitmapPool() * 用于配置Glide的Bitmap缓存池,默认配置是LruBitmapPool。 *

* setDiskCache() * 用于配置Glide的硬盘缓存策略,默认配置是InternalCacheDiskCacheFactory。 *

* setDiskCacheService() * 用于配置Glide读取缓存中图片的异步执行器,默认配置是FifoPriorityThreadPoolExecutor, * 也就是先入先出原则。 *

* setResizeService() * 用于配置Glide读取非缓存中图片的异步执行器,默认配置也是FifoPriorityThreadPoolExecutor。 *

* setDecodeFormat() * 用于配置Glide加载图片的解码模式,默认配置是RGB_565。 */ public static final int DISK_CACHE_SIZE = 500 * 1024 * 1024; public static final String DISK_CACHE_NAME = "huangxiaoguo"; @Override public void applyOptions(Context context, GlideBuilder builder) { /** 将所有Glide加载的图片缓存到SD卡上, 默认硬盘缓存大小都是250M,这里改为500 * */ //builder.setDiskCache(new ExternalCacheDiskCacheFactory(context)); /** ExternalCacheDiskCacheFactory的默认缓存路径 是在sdcard/Android/data/包名/cache/image_manager_disk_cache目录当中 */ //builder.setDiskCache(new ExternalCacheDiskCacheFactory(context, DISK_CACHE_SIZE)); /** * 更改缓存最总文件夹名称 * * 是在sdcard/Android/data/包名/cache/DISK_CACHE_NAME目录当中 */ builder.setDiskCache(new ExternalCacheDiskCacheFactory(context, DISK_CACHE_NAME, DISK_CACHE_SIZE)); /** * Glide也能使用ARGB_8888的图片格式 * 虽然图片质量变好了,但同时内存开销也会明显增大 */ builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888); } @Override public void registerComponents(Context context, Glide glide) { } }

配置MyGlideModule:

在AndroidManifest.xml的application节点下进行配置:

 data
            android:name="tsou.cn.glidetest.Glide.MyGlideModule"
            android:value="GlideModule" />

例如我的:

android自定义Glide图片加载(以更改Glide缓存路径和使用ARGB_8888的图片格式为例)_第1张图片

最后使用Glide加载图片

 String url = "https://unsplash.it/200/200?random&35";
        Glide.with(this)
                .load(url)
                .into(mIv);

效果:

android自定义Glide图片加载(以更改Glide缓存路径和使用ARGB_8888的图片格式为例)_第2张图片

注意添加网络权限:

    <uses-permission android:name="android.permission.INTERNET" />

你可能感兴趣的:(Android图片加载)