volley 应用 GET POST请求 图片异步加载
来源:互联网 发布:elk对接mysql 编辑:程序博客网 时间:2024/06/03 18:21
Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮
package com.example.volleydemo;import java.util.HashMap;import java.util.Map;import org.json.JSONObject;import android.app.Activity;import android.app.ProgressDialog;import android.graphics.Bitmap;import android.os.Bundle;import android.support.v4.util.LruCache;import android.util.Log;import android.widget.ImageView;import com.android.volley.Request;import com.android.volley.RequestQueue;import com.android.volley.Response;import com.android.volley.VolleyError;import com.android.volley.toolbox.ImageLoader;import com.android.volley.toolbox.ImageLoader.ImageCache;import com.android.volley.toolbox.ImageLoader.ImageListener;import com.android.volley.toolbox.JsonObjectRequest;import com.android.volley.toolbox.NetworkImageView;import com.android.volley.toolbox.StringRequest;import com.android.volley.toolbox.Volley;/** * Demo描述: 1 利用Volley获取JSON数据 2 利用Volley异步加载图片 1 利用NetworkImageView加载网路图片 * */public class MainActivity extends Activity { private ImageView mImageView; private NetworkImageView mNetworkImageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } private void init() { mImageView = (ImageView) findViewById(R.id.imageView); mNetworkImageView = (NetworkImageView) findViewById(R.id.networkImageView); getJSONByVolley(); getJsonPost(); loadImageByVolley(); showImageByNetworkImageView(); } /** * 利用Volley获取JSON数据 */ private void getJSONByVolley() { RequestQueue requestQueue = Volley.newRequestQueue(this); String JSONDataUrl = "http://127.0.0.1:8099/api/api.ashx?action=product_list&ver=1&pageindex=1&pageCount=5"; final ProgressDialog progressDialog = ProgressDialog.show(this, "请稍后...", "正在加载..."); JsonObjectRequest jsonObjectRequest = new JsonObjectRequest( Request.Method.GET, JSONDataUrl, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { //处理返回的JSON数据 Log.e("bbb", response.toString()); if(progressDialog.isShowing() && progressDialog!=null){ progressDialog.dismiss(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError arg0) { // System.out.println("sorry,Error"); Log.e("aaa", arg0.toString()); } }); requestQueue.add(jsonObjectRequest); } /*** * 以POST形式加载数据 */ private void getJsonPost() { RequestQueue requestQueue = Volley.newRequestQueue(this); String url = "http://127.0.0.1:8099/api/api.ashx"; StringRequest postRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() { @Override public void onResponse(String response) { //处理返回的JSON数据 Log.d("Response", response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // error } }) { @Override protected Map<String, String> getParams() { //POST 参数 Map<String, String> params = new HashMap<String, String>(); params.put("action", "product_list"); params.put("ver", "1"); params.put("pageindex", "1"); params.put("pageCount", "5"); return params; } }; requestQueue.add(postRequest); } /** * 利用Volley异步加载图片 * * 注意方法参数: getImageListener(ImageView view, int defaultImageResId, int * errorImageResId) 第一个参数:显示图片的ImageView 第二个参数:默认显示的图片资源 第三个参数:加载错误时显示的图片资源 */ private void loadImageByVolley() { String imageUrl = "http://d.hiphotos.baidu.com/pic/w%3D310/sign=a00aca825aafa40f3cc6c8dc9b65038c/060828381f30e9246b63e1814c086e061c95f7bf.jpg"; RequestQueue requestQueue = Volley.newRequestQueue(this); final LruCache<String, Bitmap> lruCache = new LruCache<String, Bitmap>( 20); ImageCache imageCache = new ImageCache() { @Override public void putBitmap(String key, Bitmap value) { lruCache.put(key, value); } @Override public Bitmap getBitmap(String key) { return lruCache.get(key); } }; ImageLoader imageLoader = new ImageLoader(requestQueue, imageCache); ImageListener listener = ImageLoader.getImageListener(mImageView, R.drawable.ic_launcher, R.drawable.ic_launcher); imageLoader.get(imageUrl, listener); } /** * 利用NetworkImageView显示网络图片 */ private void showImageByNetworkImageView() { String imageUrl = "http://d.hiphotos.baidu.com/pic/w%3D310/sign=a00aca825aafa40f3cc6c8dc9b65038c/060828381f30e9246b63e1814c086e061c95f7bf.jpg"; RequestQueue requestQueue = Volley.newRequestQueue(this); final LruCache<String, Bitmap> lruCache = new LruCache<String, Bitmap>( 20); ImageCache imageCache = new ImageCache() { @Override public void putBitmap(String key, Bitmap value) { lruCache.put(key, value); } @Override public Bitmap getBitmap(String key) { return lruCache.get(key); } }; ImageLoader imageLoader = new ImageLoader(requestQueue, imageCache); mNetworkImageView.setTag("url"); mNetworkImageView.setImageUrl(imageUrl, imageLoader); }}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <com.android.volley.toolbox.NetworkImageView android:id="@+id/networkImageView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="30dip" /> <ImageView android:id="@+id/imageView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" /> </RelativeLayout>
引入Volley非常简单,首先,从git库先克隆一个下来:
git clone https://android.googlesource.com/platform/frameworks/volley
转自:http://www.cnblogs.com/freexiaoyu/p/3446028.html
0 0
- Android volley 应用 GET POST请求 图片异步加载
- volley 应用 GET POST请求 图片异步加载(全面)
- volley 应用 GET POST请求 图片异步加载
- 异步懒人加载图片(GET和POST请求方式)
- Volley请求,GET+POST
- Volley网络框架之缓存加载图片、Post与get的数据请求
- Volley框架GET POST请求
- volley网络请求,get/post
- volley的get,post请求
- volley 的get post 请求
- Okhttp 异步get post 请求
- 网络请求----HttpURLConnection的get,post和图片加载
- 网络请求 同步get 同步post 异步get 异步post
- Volley请求数据--Get请求和Post请求
- Volley请求HTTPS,及其实现post,delete,get,put,上传下载图片。demo
- volley框架配合后端服务器实现get post请求以及图片的上传和下载
- Android OKHttp同步get请求,同步post请求,异步get请求,异步post请求
- volley常用网络请求方式GET与POST请求
- 链表之快慢指针续
- Myeclipse下新建struts项目并运行
- 如果,你是一个爱逐臭争利
- java中对象的复制
- 关于视觉显著性检测的思考(二)
- volley 应用 GET POST请求 图片异步加载
- Java输入输出(7)---向指定文件,指定位置插入内容
- 锱铢比较的人
- 那么,请到繁华闹市去
- oracle 小问题
- 就是为了想让于阳杰有些忌惮
- 网站开发中用到的插件
- 不过他站起身后却没有发飙
- java环境变量设置