软件编程
位置:首页>> 软件编程>> Android编程>> android中Glide实现加载图片保存至本地并加载回调监听

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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com