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 {

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);

以上是 android中Glide实现加载图片保存至本地并加载回调监听 的全部内容, 来源链接: utcz.com/z/344723.html

回到顶部