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. 2016.01.04 论文改重
  2. 应用 TransactionScope 报:此操作对该状态的事务无效 的错误
  3. 数据结构32:树存储结构
  4. 了解【Docker】从这里开始
  5. Linux deepin解决文件管理器打不开和桌面黑屏的问题
  6. java远程监控服务器配置_JAVA VirtualVM远程监控配置
  7. 【10.29周一电商,已好】中国日历的至高境界,377张震撼级插画,美到爆!
  8. 使用Jolokia和JMX进行客户端服务器监视
  9. Mysql优化(出自官方文档) - 第三篇
  10. Linux下安装NFS共享文件资源
  11. CSF 格式文件播放器 下载地址
  12. 【机器学习】LSTM模型原理
  13. 微信小程序云开发教程-手把手:小程序数据库设计
  14. linux系统pcre是什么作用,Linux下PCRE的安装与卸载
  15. 文章分享-七巧板拼凸多边形-PAUL SCOTT tangrams
  16. Excel学习笔记:P3-冻结窗口与分割视窗
  17. git克隆项目带用户名密码
  18. 查询数据库重复记录方法
  19. 一种低成本的室内定位UWB技术方案
  20. Snort 入侵检测系统简介

热门文章

  1. tensorflow学习笔记(3):使用tf.data API导入数据
  2. opengl es坐标变换2
  3. nginx配置跨域对服务异常(包括404)时失效的解决
  4. C# 读取Sqlite数据库的Datetime类型 会报错(时间格式不正确)
  5. 根据缺口的模式选股买股票,python 学习代码
  6. 修改eclipse或者myeclipse的背景颜色(全部的背景颜色)
  7. Hadoop HA集群部署
  8. Hello JAVA World!
  9. ETL调度开发(5)——连接数据库运行数据库命令子程序
  10. Canu FAQ常见问题