[Android通信]Volley(一):String、Json和Image请求
来源:互联网 发布:好的外文数据库 编辑:程序博客网 时间:2024/06/07 05:24
参考链接:
http://blog.csdn.net/guolin_blog/article/details/17482095
0.
下载volley的jar包,并导入
下载地址:http://pan.baidu.com/s/1c0HiMnY
1.建立全局的请求队列
package com.example.testvolley;import com.android.volley.RequestQueue;import com.android.volley.toolbox.Volley;import android.app.Application;public class MyApplication extends Application {private static RequestQueue requestQueue;public static RequestQueue getRequestQueue() {return requestQueue;}@Overridepublic void onCreate() {super.onCreate();requestQueue = Volley.newRequestQueue(getApplicationContext());}}
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.testvolley" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" /> <uses-permission android:name="android.permission.INTERNET"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" android:name="com.example.testvolley.MyApplication" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
2.
package com.example.testvolley;import java.util.HashMap;import java.util.Map;import org.json.JSONObject;import com.android.volley.Request.Method;import com.android.volley.AuthFailureError;import com.android.volley.Response;import com.android.volley.Response.Listener;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.ImageRequest;import com.android.volley.toolbox.JsonObjectRequest;import com.android.volley.toolbox.NetworkImageView;import com.android.volley.toolbox.StringRequest;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.os.Bundle;import android.support.v4.util.LruCache;import android.util.Log;import android.widget.ImageView;public class MainActivity extends Activity {private ImageView imageView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);imageView = (ImageView) findViewById(R.id.imageView);//stringGet();//stringPost();//jsonGet();//jsonPost();//imageRequest();//imageLoader();//networkImageView();}private void stringGet() {String url = "http://www.baidu.com";StringRequest sr = new StringRequest(Method.GET, url, new Listener<String>() {@Overridepublic void onResponse(String response) {Log.v("tag", response);}}, new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError error) {Log.v("tag", error.toString());}});sr.setTag("stringGet");MyApplication.getRequestQueue().add(sr);}private void stringPost(){String url = "http://www.baidu.com/s?";Listener<String> listener = new Listener<String>() {@Overridepublic void onResponse(String response) {Log.v("tag", response);}};Response.ErrorListener errorListener = new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError error) {Log.v("tag", error.toString());}};StringRequest sr = new StringRequest(Method.POST, url, listener, errorListener) {@Overrideprotected Map<String, String> getParams() throws AuthFailureError {Map<String, String> map = new HashMap<String, String>();map.put("wd", "android");return map;}};sr.setTag("stringPost");MyApplication.getRequestQueue().add(sr);}private void jsonGet(){String url = "http://m.weather.com.cn/atad/101230201.html";JsonObjectRequest jor = new JsonObjectRequest(url, null, new Listener<JSONObject>() {@Overridepublic void onResponse(JSONObject response) {Log.v("tag", response.toString());}}, new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError error) {Log.v("tag", error.toString());}});jor.setTag("jsonGet");MyApplication.getRequestQueue().add(jor);}private void jsonPost(){String url = "http://fanyi.youdao.com/openapi.do?";HashMap<String, String> map = new HashMap<String, String>();map.put("keyfrom", "lyh916");map.put("key", "1088118333");map.put("type", "data");map.put("doctype", "jsonp");map.put("callback", "show");map.put("version", "1.1");map.put("q", "API");JSONObject jsonRequest = new JSONObject(map);JsonObjectRequest jor = new JsonObjectRequest(Method.POST, url, jsonRequest, new Listener<JSONObject>() {@Overridepublic void onResponse(JSONObject response) {Log.v("tag", response.toString());}}, new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError error) {Log.v("tag", error.toString());}});jor.setTag("jsonPost");MyApplication.getRequestQueue().add(jor);}private void imageRequest(){String url = "http://avatar.csdn.net/8/5/5/3_lyh916.jpg";//第三第四个参数分别用于指定允许图片最大的宽度和高度,如果指定的网络图片的宽度或高度大于这里的最大值,则会对图片进行压缩,//指定成0的话就表示不管图片有多大,都不会进行压缩。ImageRequest imageRequest = new ImageRequest(url, new Listener<Bitmap>() {@Overridepublic void onResponse(Bitmap response) {imageView.setImageBitmap(response);}}, 0, 0, Config.ARGB_8888, new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError error) {imageView.setImageResource(R.drawable.ic_launcher);}});MyApplication.getRequestQueue().add(imageRequest);}/* * ImageLoader明显要比ImageRequest更加高效,因为它不仅可以帮我们对图片进行缓存, * 还可以过滤掉重复的链接,避免重复发送请求。使用: * 0.创建一个RequestQueue对象 * 1.创建一个ImageLoader对象 * 2.获取一个ImageListener对象 * 3.调用ImageLoader的get()方法加载网络上的图片 */private void imageLoader(){String url = "http://avatar.csdn.net/8/5/5/3_lyh916.jpg";ImageLoader imageLoader = new ImageLoader(MyApplication.getRequestQueue(), new BitmapCache());//第二个参数指定加载图片的过程中显示的图片,第三个参数指定加载图片失败的情况下显示的图片。ImageListener listener = ImageLoader.getImageListener(imageView, R.drawable.ic_launcher, R.drawable.ic_launcher);imageLoader.get(url, listener);}public class BitmapCache implements ImageCache {private LruCache<String, Bitmap> cache;public BitmapCache() {int maxSize = 10 * 1024 * 1024;//缓存图片的大小设置为10Mcache = new LruCache<String, Bitmap>(maxSize) { @Override protected int sizeOf(String key, Bitmap bitmap) { return bitmap.getRowBytes() * bitmap.getHeight(); } };}@Overridepublic Bitmap getBitmap(String url) {return cache.get(url);}@Overridepublic void putBitmap(String url, Bitmap bitmap) {cache.put(url, bitmap);}}/* * NetworkImageView继承自ImageView,加入了加载网络图片的功能 * 使用: * 0.创建一个RequestQueue对象 * 1.创建一个ImageLoader对象 * 2.在布局文件中添加一个NetworkImageView控件 * 3.在代码中获取该控件的实例 * 4.设置要加载的图片地址 */private void networkImageView(){String url = "http://avatar.csdn.net/8/5/5/3_lyh916.jpg";ImageLoader imageLoader = new ImageLoader(MyApplication.getRequestQueue(), new BitmapCache());NetworkImageView networkImageView = (NetworkImageView) findViewById(R.id.networkImageView);networkImageView.setDefaultImageResId(R.drawable.ic_launcher);networkImageView.setErrorImageResId(R.drawable.ic_launcher);networkImageView.setImageUrl(url, imageLoader);}}
3.
<LinearLayout 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" android:orientation="vertical" > <ImageView android:id="@+id/imageView" android:layout_width="100dp" android:layout_height="100dp" /> <com.android.volley.toolbox.NetworkImageView android:id="@+id/networkImageView" android:layout_width="100dp" android:layout_height="100dp" /> </LinearLayout>
0 0
- [Android通信]Volley(一):String、Json和Image请求
- Volley 请求String和Image
- android Volley JSON请求
- 【网络通信:Volley】请求的发送与响应之Image
- Android 谷歌 开源 通信框架 VOLLEY(二)——String/Json处理
- Android---Volley请求天气接口JSON解析
- 【网络通信:Volley】请求的发送与响应之JSON
- 【网络通信:Volley】请求的发送与响应之String
- volley几种简单请求,GET+POST String+JSON
- Android Volley请求json数据,fastJson解析json数据
- volley JSON请求数据
- volley JSON请求数据
- Android中基于HTTP的通信技术(5)Google开源库 使用 Volley 实现 JSON 字符串请求
- Android Volley网络通信详解一
- Android网络框架-Volley(四) 使用get和post方法发送json请求
- Android网络框架-Volley(四) 使用get和post方法发送json请求
- Android 网络通信框架Volley简介以及获取JSON对象和图片加载例子
- Volley框架学习(一)实现Json字符串请求
- 【Matlab开发】matlab中norm范数以及向量点积、绘图设置相关
- java中的抽象类
- U盘无法安装win10提示Your PC/Device needs to be repaired
- cocos2d-x设计模式发掘之三:管理者模式
- LightOJ - 1166 Old Sorting(贪心)
- [Android通信]Volley(一):String、Json和Image请求
- 正则表达式
- 学习心得(二)
- ios基础训练(一)
- cocos2d-x设计模式发掘之四:外观模式
- Easy Guide – Fast Start for sipXecs Admins
- 杭电acm2523
- cocos2d-x设计模式发掘之五:防御式编程模式
- 数据库存储过程及其与函数区别