Git Product home page Git Product logo

volley's Introduction

volley

需要的权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

1.支持http 大文件上传以及下载,支持断点下载,下载中允许暂停,下次从暂停地方开始下载

初始化

HttpTools.init(context);

建议在Application的OnCreate中执行一次(可选) #### 普通http请求 本来有八种谓词,考虑其他几种不常见,项目中用不上,暂时不提供。 HttpTools提供get,post,upload,download,delete多种请求的封装,一行代码搞定各种异步请求
get(RequestInfo requestInfo, final HttpCallback httpResult);  
post(RequestInfo requestInfo, final HttpCallback httpResult);  
delete(RequestInfo requestInfo, final HttpCallback httpResult);  
put(RequestInfo requestInfo, final HttpCallback httpResult);

文件下载

DownloadRequest download(String url, String target, final boolean isResume, final HttpCallback httpResult)
DownloadRequest download(RequestInfo requestInfo, String target, final boolean isResume, final HttpCallback httpResult)

设置参数isResume为true,即可实现断点续传,DownloadRequest提供stopDownload方法,可以随时停止当前的下载任务,再次下载将会从上次下载的地方开始下载。quitDownloadQueue允许强制关闭下载线程池,退出下载。可以在所有下载任务完成后关闭,节约资源。

文件上传

MultiPartRequest<String> upload(final String url, final Map<String, Object> params, final HttpCallback httpResult)
MultiPartRequest<String> upload(RequestInfo requestInfo, final HttpCallback httpResult)

Params是一个表单参数,可以传入string和File类型的参数。(可以使用一个key对应多个file)例如:

Map<String,Object> params = new HashMap<String, Object>();  
params.put("file0", new File("/sdcard/a.jpg"));  
params.put("file1", new File("/sdcard/a.jpg"));  
params.put("file2", new File("/sdcard/a.jpg"));  
params.put("name", "张三");  
mHttpTools.upload(url, params, httpResult);

直接使用Volley的Request

 public <T> void sendRequest(Request<T> request)

2.默认开启gzip压缩

ImageRequest和DownloadRequest不启用Gzip,其他请求均默认开启Gzip

3.支持本地图片(res,asset,sdcard)

Bitmap getBitmapFromRes(int resId);
Bitmap getBitmapFromAsset(String filePath);
Bitmap getBitmapFromContent(String imageUri);
Bitmap getBitmapFromFile(String path);

这四个方法,用来加载本地资源,分别加载Resource,Assets,系统资源,sdcard文件中的图片,这四个方法都是同步的,如果想要异步获取,display也提供加载本地资源的功能。只需要分别加上协议头即可: public static final String SCHEME_RES = "drawable://"; public static final String SCHEME_ASSET = "assets://"; public static final String SCHEME_CONTENT = "content://"; (比如需要异步加载一张resource中的图片的话,可以这样定义 bitmapTools.display(view,BitmapDecoder.SCHEME_RES+R.drawable.xxx); 加载sdcard中的文件不需要加协议头)

初始化

BitmapTools.init(context);

结束(可以在app退出后调用)

BitmapTools.stop();

建议在Application的OnCreate中执行一次

BitmapTools的display方法支持各种图片的异步加载 BitmapTools的display方法支持各种图片的异步加载

BitmapTools bitmapTools = new BitmapTools(mContext);  
bitmapTools.display(view, uri);

配置类BitmapDisplayConfig.java。可以配置的有: 默认加载图片, 加载失败图片, 图片尺寸, 加载的动画, 图片圆角属性。 BitmapTools中提供多种方法配置BitmapDisplayConfig,配置过后,BitmapTools将采用该配置来加载显示图片,也可以在display方法中带上配置参数,这种方式不会影响整体配置,只为该次展示图片所使用。

bitmapTools.display(final View view, String uri, BitmapDisplayConfig displayConfig);

4.diskcache默认使用DiskLruCache,memoryCache默认使用LruCache

5.request请求添加进度监听(包括上传进度以及加载进度)

6.允许暂停和继续请求队列

bitmapTools.resume();
bitmapTools.pause();

7.DbTools模块

数据库模块集成了xUtils中DbUtils。
使用方法参考xUtils。
注意:
注解类型不要混淆,需要映射的实体类不要混淆
添加混淆配置:-keep class * extends java.lang.annotation.Annotation { *; }

volley's People

Contributors

bacy avatar bryant1410 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

volley's Issues

能发一个demo么

能发一个demo么,普通的访问get,post请求都是没有问题的,但是关于缓存方面得东西还是不太懂,主要是我刚学java和android时间很短,源码因为水平有限还是不太明白,谢谢大神,万分感谢

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.