Nohttp请求图片的两种简答的方式:普通请求以及缓存请求

开局声明:这是基于nohttp1.0.4-include-source.jar版本写的教程

由于nohttp功能强悍,因此需要多种权限,仅仅一个联网的权限是不够的,如果只给了Internet的权限,去请求网络将还会报错:

onFailed: com.yolanda.nohttp.error.NetworkError: The network is not available, please check the network. The requested url is: http://www.sciencenet.cn/xml/iphoneinterface.aspx?type=news&nums=20

首先是初始化整个应用全局的请求队列

 1 package com.qg.lizhanqi.nohttpdemo;
 2
 3 import android.app.Application;
 4
 5 import com.yolanda.nohttp.NoHttp;
 6
 7 /**
 8  * Created by lizhanqi on 2016-7-28-0028.
 9  */
10 public class MyApplication extends Application {
11     @Override
12     public void onCreate() {
13         //对你没看错就是这么一行就这么简单,NOhttp就是这么简单
14         NoHttp.initialize(this);
15         super.onCreate();
16     }
17 }

//普通的请求

 1     public void noHttpLoadImag(String url) {
 2         //第一步:创建Nohttp请求对列(如果是本类使用的比较频繁,在onCreate的时候初始化一次就行了,这里是为了怕忘记这个步骤)
 3         requestQueues = NoHttp.newRequestQueue();
 4         //第二步:创建请求对象(url是请求路径, RequestMethod.POST是请求方式)
 5         final Request<Bitmap> imageRequest = NoHttp.createImageRequest(url);//这里 RequestMethod.GET可以不写(删除掉即可),默认的是Get方式请求
 6         //第三步:加入到请求对列中,requestQueues.add()分别是请求列的请求标志,请求对象,监听回调
 7         requestQueues.add(4, imageRequest, new SimpleResponseListener<Bitmap>() {
 8             @Override//成功后的回调
 9             public void onSucceed(int i, Response<Bitmap> response) {
10                 imageView.setImageBitmap(response.get());
11             }
12
13             @Override//失败后的回调
14             public void onFailed(int i, String s, Object o, Exception e, int i1, long l) {
15             }
16         });
17     }

//带有缓存的请求图片

 1     public void noHttpLoadCacheImag(String url) {
 2         //第一步:创建Nohttp请求对列(如果是本类使用的比较频繁,在onCreate的时候初始化一次就行了,这里是为了怕忘记这个步骤)
 3         requestQueues = NoHttp.newRequestQueue();
 4         //第二步:创建请求对象(url是请求路径, RequestMethod.POST是请求方式)
 5         Request<Bitmap> imageRequest = NoHttp.createImageRequest(url);//这里 RequestMethod.GET可以不写(删除掉即可),默认的是Get方式请求
 6         //第三步:设置请求缓存的五种模式:(这里与文字缓存一样)
 7         //DEFAULT是http标准协议的缓存
 8         //imageRequest.setCacheMode(CacheMode.DEFAULT);
 9         //REQUEST_NETWORK_FAILED_READ_CACHE请求失败返回上次缓存的数据(建议使用这种)
10         imageRequest.setCacheMode(CacheMode.REQUEST_NETWORK_FAILED_READ_CACHE);
11         //NONE_CACHE_REQUEST_NETWORK在没有缓存再去请求网络
12         // imageRequest.setCacheMode(CacheMode.NONE_CACHE_REQUEST_NETWORK);
13         // ONLY_READ_CACHE仅仅请求缓存,如果没有缓存就会请求失败
14         //imageRequest.setCacheMode(CacheMode.ONLY_READ_CACHE);
15         //ONLY_REQUEST_NETWORK仅仅请求网络不支持302重定向
16         // imageRequest.setCacheMode(CacheMode.ONLY_REQUEST_NETWORK);
17
18         //第四步:加入到请求对列中,requestQueues.add()分别是请求列的请求标志,请求对象,监听回调
19         requestQueues.add(5, imageRequest, new SimpleResponseListener<Bitmap>() {
20             @Override//请求成功的回调
21             public void onSucceed(int i, Response<Bitmap> response) {
22                 imageView.setImageBitmap(response.get());
23             }
24             @Override//请求失败的回调
25             public void onFailed(int i, String s, Object o, Exception e, int i1, long l) {
26             }
27         });
28     }

Nohttp 获取图片Bitmap相关推荐

  1. android通过BitmapFactory.decodeFile获取图片bitmap报内存溢出的解决办法

    android通过BitmapFactory.decodeFile获取图片bitmap报内存溢出的解决办法 原方法: public static Bitmap getSmallBitmap(Strin ...

  2. android 获取图片bitmap对象,Android中Glide获取图片Path、Bitmap用法详解

    脚本之家在此之前给大家介绍过图片加载框架Glide的基本用法介绍,大家可以先参考一下,本篇内容更加深入的分析了Glide获取图片Path.Bitmap用法,以及实现的代码分析. 1. 获取Bitmap ...

  3. java bitmap获取图片大小_android 通过uri获取bitmap图片并压缩

    很多人在调用图库选择图片时会在onActivityResult中用Media.getBitmap来获取返回的图片,如下: Uri mImageCaptureUri = data.getData(); ...

  4. android 代码获取图片信息吗,Android 通过网络获取图片的代码

    Android 通过网络获取图片的代码 主activity package com.netimg; import android.app.Activity; import android.graphi ...

  5. android获取图片缩略图,Android系获取图片和视频的缩略图

    获取手机里视频缩略图: public static Bitmap getVideoThumbnail(ContentResolver cr,Uri uri) { Bitmap bitmap = nul ...

  6. android中获取图片、获取图片像素、处理像素等基础知识

    一.android获取图片的主要方法. (1).利用BitmapFactory.decode..各种方式获取资源.sd卡的图片,从这可以看出android都是以位图的形式加载的图片的,jpg.png等 ...

  7. android 获取图片

    Android获取手机或者内存卡里面的图片有两种方式 1.这是通过一种action Intent intent=new Intent();intent.setAction(Intent.ACTION_ ...

  8. php拍照从手机相册中选择,Android获取图片:拍照和从相册中选择

    概述 在Android开发中获取图片主要包括如下两种方式: 打开相机拍照 从图库中选择图片 一.打开相机拍照 打开相机拍照主要包括如下几个部分: 权限申请 打开摄像头 拍照后传回数据处理 1. 权限申 ...

  9. android 从相册或相机获取图片并且裁剪 支持android 7.0

    1.在res/xml目录中新建一个file_paths.xml <?xml version="1.0" encoding="utf-8"?> < ...

  10. 安卓高级6 拍照或者从相册获取图片 并检测旋转角度或者更新画册扫描

    1. 旋转角度 当我们从手机读取图片时候发现其图片旋转了90或者其他度数,比如三星拍照后的照片就是个例子.这时候我们读取出来判断角度然后在逆向回转为正向的图片 所需类 ExifInterface Ex ...

最新文章

  1. 【应用笔记】【AN001】VC#开发环境下基于以太网的4-20mA电流采集(基于modbus tcp 协议)...
  2. ora-24811提供写入的数据少于指定的数据_C++开源、高性能时序数据库pinusdb
  3. bat中冒号的作用(注释 ,跳转, 截取、替换字符串)
  4. 把项目中任意文件夹导出为可执行的jar包
  5. 排序算法之八 桶排序(C++版本)
  6. 使用POI导出数据以及性能比较
  7. Xshell 5下载详细教程
  8. 计算机中单位换算tb,计算机中容量单位B、KB、MB、GB和TB的关系
  9. 自我成长与团队管理——一些总结
  10. linux 下通过 httpd服务创建网页
  11. 袋鼠云数栈UI5.0体验升级背后的故事:可用性原则与交互升级
  12. 35岁程序员人群被公司优化,你觉得合理吗?
  13. mysql 电商实战_SQL电商数据分析实战
  14. 关于ckeditor富文本编辑器上传图片返回“不正确的服务器响应”的解决方案
  15. k8s学习笔记(10)--- kubernetes核心组件之controller manager详解
  16. cisco 2821 路由器的端口映射
  17. java根据打印模板打印_java调用本地打印机,绘制打印模板,小票模板
  18. java if语句的用法
  19. 纯js实现在线文字识别,从图片中提取文本信息
  20. 帝国时代3 亚洲王朝 酋长合集 Mac版 – 即时战略游戏

热门文章

  1. 2020_1123_生活记录
  2. android studio for android learning (二十七) UI控件动态加载机制浅析
  3. 基础集合论 第一章 7 交集 8 差集
  4. 91.解码方法(力扣leetcode) 博主可答疑该问题
  5. LINUX中文件的移动,Linux中文件移动文件的操作命令为 ()
  6. lc滤波器是利用电感的感抗_电感器在电路中的应用特性
  7. spark读写Oracle、hive的艰辛之路(一)
  8. Linux下C编程入门(2)
  9. 模拟Post登陆带验证码的网站
  10. javascript一维数组的排序