最近想在项目中试试Volley,把尝试的东西简单记一下。在百度搜Volley,立刻就有CSDN上大神的文章http://blog.csdn.net/t12x3456/article/details/9221611写的很详细,不过是13年的(我落伍好多的赶脚……)
尝试1:下载Volley。
在github上搜了一下,很多Volley的Demo,不过不太放心,想看看google源码。搜到一个地址,
git clone https://android.googlesource.com/platform/frameworks/volley.git
用Android Studio import一下,OK,源码搞定。
尝试2:打jar包。
同样可以搜到很多教程,如http://www.cnblogs.com/wuya/p/android-studio-gradle-export-jar-assets.html,试验一下发现:
project默认就已经是module了,并且build.gradle中有
apply plugin: 'com.android.library'
OK,去看一下目录 \volley\build\intermediates\bundles下只有debug目录,没关系,gradle build 一下。release有了,找到classes.jar,据说这个就是编译好的volley的jar包了。突然想到版本号的问题,发现没有任何地方标识(可能我没找到……),就把它名名称volley20150523吧。。
尝试3:引入项目。
Android Studio导入jar包很容易:
1、将jar包放入项目里的libs文件夹中。
2、在project选中jar包点击右键”Add as library”。
3、新版的IDE会自动在builde.gradle帮你填好
compile files('libs/volley20150523.jar')
之后就可以用了。
尝试4:使用volley
volley已经很成熟了,教程也非常多,这个大神写的几篇文章就非常清楚。
Android Volley完全解析(一),初识Volley的基本用法
http://blog.csdn.net/guolin_blog/article/details/17482095
Android Volley完全解析(二),使用Volley加载网络图片
http://blog.csdn.net/guolin_blog/article/details/17482165
Android Volley完全解析(三),定制自己的Request
http://blog.csdn.net/guolin_blog/article/details/17612763
当然他还有一篇4,将源码,暂时先不看了,有空再研究。照着第一篇文章试了一下,果然能够打印出百度的html,说明网络请求OK了。
private void test(Context context) {
RequestQueue mQueue = Volley.newRequestQueue(context);
StringRequest stringRequest = new StringRequest("http://www.baidu.com",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, error.getMessage(), error);
}
});
mQueue.add(stringRequest);
}
2是图片的:
private void test2(Context context) {
RequestQueue mQueue = Volley.newRequestQueue(context);
ImageLoader imageLoader = new ImageLoader(mQueue, new ImageLoader.ImageCache() {
@Override
public void putBitmap(String url, Bitmap bitmap) {
}
@Override
public Bitmap getBitmap(String url) {
return null;
}
});
ImageLoader.ImageListener listener = ImageLoader.getImageListener(imageView, 0, 0);
imageLoader.get("https://img-my.csdn.net/uploads/201404/13/1397393290_5765.jpeg"
, listener);
}
还有一个用法,就是把imageview 换成NetworkImageView,好像稍微简单了点。
但是这玩意儿没用啊,处处使用RequestQueue实在不好用,继续往下看。第三章是讲《定制自己的Request》,主要是针对XML和JSON对Request进行了封装,json的解析用了GSON库,所以很容易就完成了json->object。(回头我好好看一下怎么弄的)
尝试5:将volley实际用在项目中
这里我还是没太想好怎么封装,能更方便的在项目中用volley。。准备试一下在写。