android中Glide实现加载图片保存至本地并加载回调监听
作者:code小生 发布时间:2021-12-05 23:00:03
标签:glide,加载,回调
Glide 加载图片使用到的两个记录
Glide 加载图片保存至本地指定路径
/**
* Glide 加载图片保存到本地
*
* imgUrl 图片地址
* imgName 图片名称
*/
Glide.with(context).load(imgUrl).asBitmap().toBytes().into(new SimpleTarget<byte[]>() {
@Override
public void onResourceReady(byte[] bytes, GlideAnimation<? super byte[]> glideAnimation) {
try {
savaBitmap(imgName, bytes);
} catch (Exception e) {
e.printStackTrace();
}
}
});
// 保存图片到手机指定目录
public void savaBitmap(String imgName, byte[] bytes) {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
String filePath = null;
FileOutputStream fos = null;
try {
filePath = Environment.getExternalStorageDirectory().getCanonicalPath() + "/MyImg";
File imgDir = new File(filePath);
if (!imgDir.exists()) {
imgDir.mkdirs();
}
imgName = filePath + "/" + imgName;
fos = new FileOutputStream(imgName);
fos.write(bytes);
Toast.makeText(context, "图片已保存到" + filePath, Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fos != null) {
fos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
} else {
Toast.makeText(context, "请检查SD卡是否可用", Toast.LENGTH_SHORT).show();
}
}
Glide 加载图片回调方法
Glide.with(context).load(imgUrl)
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model,
Target<GlideDrawable> target,
boolean isFirstResource) {
// 可替换成进度条
Toast.makeText(context, "图片加载失败", Toast.LENGTH_SHORT).show();
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model,
Target<GlideDrawable> target,
boolean isFromMemoryCache,
boolean isFirstResource) {
// 图片加载完成,取消进度条
Toast.makeText(context, "图片加载成功", Toast.LENGTH_SHORT).show();
return false;
}
}).error(R.mipmap.ic_launcher_round)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(imageView);
来源:http://www.jianshu.com/p/33d7e26e9e25?utm_source=tuicool&utm_medium=referral


猜你喜欢
- 从配置获取的配置默认是明文的,有些像数据源这样的配置需要加密的话,需要对配置中心进行加密处理。下面使用对称性加密来加密配置,需要配置一个密钥
- 前言:Android Studio中把项目的lib库提交到Jcenter仓库中,需要使用到Bintray,Bintray是jCenter的提
- 前言作为Java开发者,我们每天都会创建大量的对象,但是,我们总是使用管理依赖系统(如Spring框架)来创建这些对象。其实还有其他方法可以
- using System;using System.Collections.Generic;using System.IO;using Sy
- 最新Spring Data JPA官方参考手册 Version 2.0.0.RC2,2017-07-25https://docs.sprin
- 随着手机性能的提高,以及iOS和Android两个平台的普及,更多的App都会选择两个平台的App都进行开发,在有些时候,为了更加快速的开发
- 最近在开发浏览器碰到这么一个需求:点击地址栏的时候,需要全选并调出键盘,再次点击就取消全选显示光标。点击屏幕除地址栏其他位置时,键盘隐藏,隐
- 本文为大家分享了Unity实现粒子光效导出成png序列帧的具体代码,供大家参考,具体内容如下这个功能并不是很实用,不过美术同学有这样的需求,
- 本文根据java开发人员在编码过程中容易忽视或经常出错的地方进行了整理,总结了十个比较常见的低级错误点,方便大家学习。1、不能用“==”比较
- TypeScript简介:TypeScript是一种由微软开发的自由和开源的编程语言。它是JavaScript的一个超集,而且本质上向这个语
- Springboot整合RockerMQ1、maven依赖<dependencies> <!--
- 本文实例为大家分享了Unity shader实现自由放大缩小效果的具体代码,供大家参考,具体内容如下代码:以下实现的shader代码:Sha
- Ireport的安装及使用一、 安装ireport1.点击安装包,可以一直点击下一步,安装完成。2.安装完成后,要在如下安装目录下添加ojd
- 一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架
- 最近的一个接口项目,传的参数要求是json,需要特殊处理一下。重点是这两句话:httpPost.setHeader("Conten
- 业务场景:调用同步接口获取当前全部有效账户,数据库已存在部分账户信息,因此需要筛选同步接口中已存在本地的帐户。调用接口获取的数据集合List
- 第一节 接口慨述接口(interface)用来定义一种程序的协定。实现接口的类或者结构要与接口的定义严格一致。有了这个协定,就可以抛开编程语
- 这篇文章主要介绍了Spring boot @RequestBody数据传递过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有
- 需求:将 一个容器List<Bean> 按照一定的字段进行分组,分组过后的值为特定的BEAN 里面的属性例如:假定有这样一个Be
- 本文实例为大家分享了C#实现简易计算器功能的具体代码,供大家参考,具体内容如下实现页面布局和数值初始化using System;using