Android网络通信必备神器Volley详解——发送一个标准的Request
2015-11-12 14:48
751 查看
Volley主要支持一下几种Request
1. StringRequest:确定一个URL,获得返回的原始字符串。
2. ImageRequest:确定一个URL,获得一个图片。
3. JsonObjectRequest和JsonArrayRequest: 确定一个URL,获得JSON对象或者数字。
在你layout的XML文件中
加载图片
正如上篇文章里说的,把RequestQueue封装起来使得图片的cache独立于Activity,当屏幕进行旋转的时候图片不用重新从网络下载,不会造成闪屏。
1. StringRequest:确定一个URL,获得返回的原始字符串。
2. ImageRequest:确定一个URL,获得一个图片。
3. JsonObjectRequest和JsonArrayRequest: 确定一个URL,获得JSON对象或者数字。
请求一个图片
使用ImageRequest
<span style="font-size:14px;">ImageView mImageView; String url = "http://i.imgur.com/7spzG.png"; mImageView = (ImageView) findViewById(R.id.myImage); ... // Retrieves an image specified by the URL, displays it in the UI. ImageRequest request = new ImageRequest(url, new Response.Listener<Bitmap>() { @Override <strong> public void onResponse(Bitmap bitmap) { mImageView.setImageBitmap(bitmap); }</strong> }, 0, 0, null, new Response.ErrorListener() { public void onErrorResponse(VolleyError error) { mImageView.setImageResource(R.drawable.image_load_error); } }); // Access the RequestQueue through your singleton class. MySingleton.getInstance(this).addToRequestQueue(request);</span>
使用ImageLoader和NetworkImageView
使用ImageLoader 和NetworkImageView来有效的加载多张图片,比如在ListView中加载图片。在你layout的XML文件中
<com.android.volley.toolbox.NetworkImageView android:id="@+id/networkImageView" android:layout_width="150dp" android:layout_height="170dp" android:layout_centerHorizontal="true" />
加载图片
ImageLoader mImageLoader; NetworkImageView mNetworkImageView; private static final String IMAGE_URL = "http://developer.android.com/images/training/system-ui.png"; ... // Get the NetworkImageView that will display the image. mNetworkImageView = (NetworkImageView) findViewById(R.id.networkImageView); // Get the ImageLoader through your singleton class. mImageLoader = MySingleton.getInstance(this).getImageLoader(); // Set the URL of the image that should be loaded into this view, and // specify the ImageLoader that will be used to make the request. mNetworkImageView.setImageUrl(IMAGE_URL, mImageLoader);
正如上篇文章里说的,把RequestQueue封装起来使得图片的cache独立于Activity,当屏幕进行旋转的时候图片不用重新从网络下载,不会造成闪屏。
请求JSON
与前面的Request类似,直接看代码TextView mTxtDisplay; ImageView mImageView; mTxtDisplay = (TextView) findViewById(R.id.txtDisplay); String url = "http://my-json-feed"; JsonObjectRequest jsObjRequest = new JsonObjectRequest (Request.Method.GET, url, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { mTxtDisplay.setText("Response: " + response.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // TODO Auto-generated method stub } }); // Access the RequestQueue through your singleton class. MySingleton.getInstance(this).addToRequestQueue(jsObjRequest);
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件