Glide设置和获取缓存的路径

1.接口GlideModule实现GlideBuider的实现类指定缓存的路径

public class GiphyGlideModule implements GlideModule {
    
    public GiphyGlideModule( ) {
    }

    @Override
    public void applyOptions(Context context, GlideBuilder builder) {
        //设置图片的显示格式ARGB_8888(指图片大小为32bit)
        builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);

        builder.setDiskCache(new DiskCache.Factory() {
            @Override
            public DiskCache build() {//缓存的路径
                return DiskLruCacheWrapper.get(new File(Environment.getExternalStorageDirectory(),"GlidePhoto"), 200*1000*1000);
            }
        });
    }

    @Override
    public void registerComponents(Context context, Glide glide) {

    }
}

2:在AndroidManifest中配置GiphyGlideModule

<meta-data
    android:name="包名.GiphyGlideModule"
    android:value="GlideModule" />

3.获取缓存的路径

private class getImageAsyncTask extends AsyncTask<String, Void, File> {
    private final Context context;

    public getImageAsyncTask(Context context) {
        this.context = context;
    }

    @Override
    protected File doInBackground(String... params) {
        String imgUrl =  params[0];
        Log.e("imgUrl", imgUrl);
        try {
            return Glide.with(context)
                    .load(imgUrl)
                    .downloadOnly(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
                    .get();
        } catch (Exception ex) {
            return null;
        }
    }

    @Override
    protected void onPostExecute(File result) {
        if (result == null) {
            return;
        }
        //此path就是对应文件的缓存路径
        String path = result.getPath();
        Log.e("path", path);
        Bitmap bmp= BitmapFactory.decodeFile(path);
        img.setImageBitmap(bmp);

    }
}

4.调用方法

new getImageAsyncTask(AddBigImageActivity.this).execute("uri");

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值