导入Volley
Volley貌似没有官方的Maven repository,你必须依赖官方的源代码。从它的repository 下载Volley源码。使用Git命令:
|
|
不过还有第三种方法,你可以在build.gradle 文件的依赖部分添加这行代码:
|
|
准备工作
权限
12<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>变量
RequestQueue mRequestQueue = Volley.newRequestQueue(this);
实践
Volley实现了三种常见的请求类型:
StringRequest
JsonObjectRequest
ImageRequest
StringRequest
|
|
JsonObjectRequest
|
|
如果请求JSONArray ,只需用JsonArrayRequest 替代aJsonObjectRequest就可以了
ImageRequest
有三种请求图片的方法。
ImageRequest
12345678910111213141516171819202122232425262728/*** 第一个参数是图片的url,* 第二个是结果的listener,* 第三、第四个参数是maxWidth(最大宽度) 和 maxHeight(最大高度),你可以设置为0来忽略他们。* 第五个参数是用于计算图片所需大小的ScaleType,* 第六个参数是用于指定图片压缩方式的参数,建议总是使用 Bitmap.Config.ARGB_8888*/private void iamgeRequest() {showMsg.setText("");progressBar.setVisibility(View.VISIBLE);showImage.setImageBitmap(null);String url = "http://p3.so.qhimg.com/t012befc69d1b6d8f88.jpg";ImageRequest imageRequest = new ImageRequest(url, new Response.Listener<Bitmap>() {public void onResponse(Bitmap response) {showImage.setImageBitmap(response);progressBar.setVisibility(View.GONE);}}, 0, 0, ImageView.ScaleType.FIT_XY, Bitmap.Config.ARGB_8888, new Response.ErrorListener() {public void onErrorResponse(VolleyError error) {progressBar.setVisibility(View.GONE);showMsg.setText("ImageRequest error==" + error);}});mRequestQueue.add(imageRequest);}imageLoader+NetworkImageView
NetworkImageView xml1234567<com.android.volley.toolbox.NetworkImageViewandroid:id="@+id/networkImageView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:layout_gravity="center_horizontal"android:src="@mipmap/ic_launcher" />
NetworkImageView在加载图片的时候会自动获取自身控件的宽高,然后对比网络图片的宽度,再决定是否需要对图片进行压缩。也就是说,压缩过程是在内部完全自动化的,并不需要我们关心,NetworkImageView会始终呈现给我们一张大小刚刚好的网络图片,不会多占用任何一点内存。
如果不想对图片进行压缩的话,只需要在布局文件中把NetworkImageView的layout_width和layout_height都设置成wrap_content就可以了,这样NetworkImageView就会将该图片的原始大小展示出来,不会进行任何压缩。
postRequest
|
|
取消Volley
|
|
源码地址
https://github.com/WuXiaolong/VolleySample
附录
网络请求库Volley详解
Android开源:网络框架volley使用(一)