volley 应用 GET POST请求 图片异步加载(全面)
来源:互联网 发布:网络io 文件系统 编辑:程序博客网 时间:2024/06/05 09:16
1 package com.example.volleydemo; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 6 import org.json.JSONObject; 7 8 import android.app.Activity; 9 import android.app.ProgressDialog; 10 import android.graphics.Bitmap; 11 import android.os.Bundle; 12 import android.support.v4.util.LruCache; 13 import android.util.Log; 14 import android.widget.ImageView; 15 16 import com.android.volley.Request; 17 import com.android.volley.RequestQueue; 18 import com.android.volley.Response; 19 import com.android.volley.VolleyError; 20 import com.android.volley.toolbox.ImageLoader; 21 import com.android.volley.toolbox.ImageLoader.ImageCache; 22 import com.android.volley.toolbox.ImageLoader.ImageListener; 23 import com.android.volley.toolbox.JsonObjectRequest; 24 import com.android.volley.toolbox.NetworkImageView; 25 import com.android.volley.toolbox.StringRequest; 26 import com.android.volley.toolbox.Volley; 27 28 /** 29 * Demo描述: 1 利用Volley获取JSON数据 2 利用Volley异步加载图片 1 利用NetworkImageView加载网路图片 30 * 31 */ 32 public class MainActivity extends Activity { 33 private ImageView mImageView; 34 private NetworkImageView mNetworkImageView; 35 36 @Override 37 protected void onCreate(Bundle savedInstanceState) { 38 super.onCreate(savedInstanceState); 39 setContentView(R.layout.activity_main); 40 init(); 41 } 42 43 private void init() { 44 mImageView = (ImageView) findViewById(R.id.imageView); 45 mNetworkImageView = (NetworkImageView) findViewById(R.id.networkImageView); 46 getJSONByVolley(); 47 getJsonPost(); 48 loadImageByVolley(); 49 showImageByNetworkImageView(); 50 } 51 52 /** 53 * 利用Volley获取JSON数据 54 */ 55 private void getJSONByVolley() { 56 RequestQueue requestQueue = Volley.newRequestQueue(this); 57 String JSONDataUrl = "http://127.0.0.1:8099/api/api.ashx?action=product_list&ver=1&pageindex=1&pageCount=5"; 58 final ProgressDialog progressDialog = ProgressDialog.show(this, 59 "请稍后...", "正在加载..."); 60 61 JsonObjectRequest jsonObjectRequest = new JsonObjectRequest( 62 Request.Method.GET, JSONDataUrl, null, 63 new Response.Listener<JSONObject>() { 64 @Override 65 public void onResponse(JSONObject response) { 66 //处理返回的JSON数据 67 Log.e("bbb", response.toString()); 68 if(progressDialog.isShowing() && progressDialog!=null){ 69 progressDialog.dismiss(); } 70 } 71 }, new Response.ErrorListener() { 72 @Override 73 public void onErrorResponse(VolleyError arg0) { 74 // System.out.println("sorry,Error"); 75 Log.e("aaa", arg0.toString()); 76 } 77 }); 78 requestQueue.add(jsonObjectRequest); 79 } 80 81 /*** 82 * 以POST形式加载数据 83 */ 84 private void getJsonPost() { 85 RequestQueue requestQueue = Volley.newRequestQueue(this); 86 String url = "http://127.0.0.1:8099/api/api.ashx"; 87 StringRequest postRequest = new StringRequest(Request.Method.POST, url, 88 new Response.Listener<String>() { 89 @Override 90 public void onResponse(String response) { 91 //处理返回的JSON数据 92 Log.d("Response", response); 93 } 94 }, new Response.ErrorListener() { 95 @Override 96 public void onErrorResponse(VolleyError error) { 97 // error 98 } 99 }) {100 @Override101 protected Map<String, String> getParams() {102 //POST 参数103 Map<String, String> params = new HashMap<String, String>();104 params.put("action", "product_list");105 params.put("ver", "1");106 params.put("pageindex", "1");107 params.put("pageCount", "5");108 return params;109 }110 };111 requestQueue.add(postRequest);112 }113 114 /**115 * 利用Volley异步加载图片116 * 117 * 注意方法参数: getImageListener(ImageView view, int defaultImageResId, int118 * errorImageResId) 第一个参数:显示图片的ImageView 第二个参数:默认显示的图片资源 第三个参数:加载错误时显示的图片资源119 */120 private void loadImageByVolley() {121 String imageUrl = "http://d.hiphotos.baidu.com/pic/w%3D310/sign=a00aca825aafa40f3cc6c8dc9b65038c/060828381f30e9246b63e1814c086e061c95f7bf.jpg";122 RequestQueue requestQueue = Volley.newRequestQueue(this);123 final LruCache<String, Bitmap> lruCache = new LruCache<String, Bitmap>(124 20);125 ImageCache imageCache = new ImageCache() {126 @Override127 public void putBitmap(String key, Bitmap value) {128 lruCache.put(key, value);129 }130 131 @Override132 public Bitmap getBitmap(String key) {133 return lruCache.get(key);134 }135 };136 ImageLoader imageLoader = new ImageLoader(requestQueue, imageCache);137 ImageListener listener = ImageLoader.getImageListener(mImageView,138 R.drawable.ic_launcher, R.drawable.ic_launcher);139 imageLoader.get(imageUrl, listener);140 }141 142 /**143 * 利用NetworkImageView显示网络图片144 */145 private void showImageByNetworkImageView() {146 String imageUrl = "http://d.hiphotos.baidu.com/pic/w%3D310/sign=a00aca825aafa40f3cc6c8dc9b65038c/060828381f30e9246b63e1814c086e061c95f7bf.jpg";147 RequestQueue requestQueue = Volley.newRequestQueue(this);148 final LruCache<String, Bitmap> lruCache = new LruCache<String, Bitmap>(149 20);150 ImageCache imageCache = new ImageCache() {151 @Override152 public void putBitmap(String key, Bitmap value) {153 lruCache.put(key, value);154 }155 156 @Override157 public Bitmap getBitmap(String key) {158 return lruCache.get(key);159 }160 };161 ImageLoader imageLoader = new ImageLoader(requestQueue, imageCache);162 mNetworkImageView.setTag("url");163 mNetworkImageView.setImageUrl(imageUrl, imageLoader);164 }165 166 }
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 > 6 7 <com.android.volley.toolbox.NetworkImageView 8 android:id="@+id/networkImageView" 9 android:layout_width="fill_parent" 10 android:layout_height="wrap_content" 11 android:layout_centerHorizontal="true" 12 android:layout_marginTop="30dip" 13 /> 14 15 <ImageView 16 android:id="@+id/imageView" 17 android:layout_width="fill_parent" 18 android:layout_height="wrap_content" 19 android:layout_centerInParent="true" 20 /> 21 22 </RelativeLayout>
引入Volley非常简单,首先,从git库先克隆一个下来:
git clone https://android.googlesource.com/platform/frameworks/volley
然后生成JAR包 引用
下面是我生成好的JAR
引用volley JAR包 下载地址
1 0
- volley 应用 GET POST请求 图片异步加载(全面)
- Android 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请求
- SQL Server 查询 Active Directory
- css&div学习笔记(2)
- C++基础知识面试笔试准备
- 网页报错有哪些错误?比如说400错误、500错误、404错误
- java中ftp断点上传功能的实现
- volley 应用 GET POST请求 图片异步加载(全面)
- drawable-hdpi,drawable-ldpi,drawable-mdpi区别?
- Matlab在训练神经网络时突然停止 Validation Stop
- Scala环境搭建之eclipse
- 网民对P2P网贷资金银行托管的误解
- voip 一个简单的eXosip的register注册例子
- Eclipse安装testng插件
- 机器学习——深度学习(Deep Learning)
- 军人农博网站点技术架构