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);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。