欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

android中Glide实现加载图片保存至本地并加载回调监听

时间:2021-06-05 08:59:19|栏目:Android代码|点击:

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自定义控件属性TypedArray以及attrs

栏    目:Android代码

下一篇:Bitmap海量数据快速查找去重代码示例

本文标题:android中Glide实现加载图片保存至本地并加载回调监听

本文地址:http://www.codeinn.net/misctech/135768.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有