Retrofit通过Url下载图片

1.首先工具类:

/**
 * ClassName:DownloadImageUtils
 * Description TODO 下载图片
 * created by 漠天
 * Data 2016/12/20 11:35
 */
public class DownloadImageUtils {/**
     * 下载图片到SD卡
     * @param mApi
     * @param url
     * @param imageName
     */
    public static void downloadLatestFeature(AppServiceApi mApi, final String url, final String imageName){Call<ResponseBody> resultCall = AppService.downloadLatestFeature(mApi,url);
        resultCall.enqueue(new Callback<ResponseBody>() {@Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {writeResponseBodyToDisk(imageName,response.body());
            }@Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {}});
    }/**
     * 保存下载的图片流写入SD卡文件
     * @param imageName  xxx.jpg
     * @param body  image stream
     */
    public static void writeResponseBodyToDisk(String imageName, ResponseBody body) {if(body==null){ToastUtils.showToast("图片源错误");
            return;
        }try {InputStream is = body.byteStream();
            File fileDr = new File(APP_IMAGE_DIR);
            if (!fileDr.exists()) {fileDr.mkdir();
            }File file = new File(APP_IMAGE_DIR, imageName);
            if (file.exists()) {file.delete();
                file = new File(APP_IMAGE_DIR, imageName );
            }FileOutputStream fos = new FileOutputStream(file);
            BufferedInputStream bis = new BufferedInputStream(is);
            byte[] buffer = new byte[1024];
            int len;
            while ((len = bis.read(buffer)) != -1) {fos.write(buffer, 0, len);
            }fos.flush();
            fos.close();
            bis.close();
            is.close();
        } catch (IOException e) {e.printStackTrace();
        }}
}

2.接口方法:

/**
 * 下载最新模板图片
 * @param api
 */
public static Call<ResponseBody> downloadLatestFeature(AppServiceApi api, String imageUrl) {return api.downloadLatestFeature(imageUrl);
}

3.Retrofit接口调用:(主要就是这部分,@Streaming 和 Call<ResponseBody> )

/**
 * 下载最新模板
 *
 * @return
 */
@Streaming
@GET
Call<ResponseBody> downloadLatestFeature(@Url String fileUrl);

from :  http://blog.csdn.net/newsolider2012/article/details/54644762

我的demo DownloadImage

android Retrofit下载图片相关推荐

  1. android多线程下载图片

    很多时候我们需要在Android设备上下载远程服务器上的图片进行显示,今天Android123整理出两种比较好的方法来实现远程图片的下载.    方法一.直接通过Android提供的Http类访问远程 ...

  2. android客户端下载图片的方法

    回复于: 2011-02-21 22:26:06 HTTP 协议,就像下载一个图片一样. 类似于这样的代码: URL url = new URL("http://xxx.xxx.xxx.xx ...

  3. Android Retrofit下载文件进度

    In this tutorial, we'll create an android application which downloads a file from the URL using Retr ...

  4. Android框架——下载图片框架Fresco

    版权声明:本文为博主原创文章,未经博主允许不得转载.转载注明出处:Sunzxyong 流行的网络框架 目前流行的网络图片框架:  Picasso.Universal Image Loader.Voll ...

  5. Android实现下载图片并保存到SD卡中

    1.java代码,下载图片的主程序 先实现显示图片,然后点击下载图片按钮,执行下载功能. 从网络上取得的图片,生成Bitmap时有两种方法,一种是先转换为byte[],再生成bitmap:一种是直接用 ...

  6. android网络下载图片并且显示在图库中

    1:网络下载图片 主要是练习网络编程,获取网络数据.不能使用网络资源的软件是很难有长足的发展和进步的,个人觉得,所以最近在学习网络相关的编程.这里就把我做的demo发在这里,同时我也梳理一下知识点.废 ...

  7. Android:下载图片

    //显示图片 Glide.with(context).load(ApiService.HOST + imgUrl).skipMemoryCache(true)//跳过内存缓存.diskCacheStr ...

  8. Android 手机下载图片保存本地后,系统相册无法查看

    下载图片到本地,由于没有通知系统相册,更新数据,导致系统相册无法找到这张图片. 处理方法一:已知图片保存地址,通过广播通知系统相册, 更新数据. public static void sendBroa ...

  9. android 网络下载图片,加载Bitmap 不oo控件

    题目有点唬人的意思,不过,google官网确实已经给出了一个这样的例子 这个博客没多少技术含量,只是和大家分享这么一个东东 直接上图吧: 加载很多图片吧,这些图片都是从网络加载的:参考url publ ...

最新文章

  1. 小程序判断用户在线状态
  2. StaicArray
  3. leetcode 705. 设计哈希集合
  4. 字节流转化为文件流_字节流转成字符串之后,在通过字符串转成字节流后的文件为什么会不一样?...
  5. C++primer 第 4 章 表达式 4.1基础 4 . 2 算术运算符 4 .3 逻辑和关系运算符 4 . 4 赋值运算符 4 .5 递增和递减运算符 4.6成员访问运算符
  6. php 面向对象基础,PHP 面向对象基础
  7. 【linux】RedHat 安装 gcc、g++
  8. linux解压覆盖命令
  9. centos6.7环境下kvm虚拟机之virt-install和virsh及virt-manager工具的使用
  10. Solr中的q与fq参数的区别
  11. PowerBuilder 开发的游戏(建房子)
  12. centos下ftp服务器搭建
  13. 使用photoView完成照片查看器(本地图片)
  14. 计算机机房使用多大的光纤引入,数据中心机房采用光纤网络布线案例解析
  15. Spring boot 文件下载乱码问题
  16. office xls Hyperlink
  17. 《SpringBoot框架开发技术整合》笔记(二)
  18. Faster RCNN layer.py
  19. pytorch【Conv2d参数介绍】
  20. 关闭Linux防火墙

热门文章

  1. Android中的su命令使用
  2. UE4的.pak文件的加密和签名
  3. 什么是即时消息(IM)?
  4. 《西线无战事》我们才刚开始热爱生活,却不得不对一切开炮
  5. php多次请求只执行最后一次,取消重复请求,只让最后一次请求通过
  6. Android view 部分 setContentView 的前因后果
  7. python矩阵运算_python矩阵计算
  8. 论文阅读: (ICDAR2021 海康威视)LGPMA(表格识别算法)及官方源码对应解读
  9. 阿里云短信服务与微信小程序对接进行注册
  10. Python猜数字小游戏