android中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 {
android学习教程savaBitmap(imgName, bytes);
} catch (Exception e) {
e.printStackTrace();
}
}
});
// 保存图⽚到⼿机指定⽬录
public void savaBitmap(String imgName, byte[] bytes) {
if (ExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
String filePath = null;
FileOutputStream fos = null;
try {
filePath = ExternalStorageDirectory().getCanonicalPath() + "/MyImg";
File imgDir = new File(filePath);
if (!ists()) {
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);
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论