volley 学习

来源:互联网 发布:追梦格林常规赛数据 编辑:程序博客网 时间:2024/06/08 02:06

asynacTask是android封装的一个线程的请求类,我感觉用起来挺好的,但是大家都在用volley所以我也学学

volley 是Google公司的开源的项目,主要是获取JSONObject和图片加载,开始;

1:最简单的形式:

import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;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.JsonObjectRequest;import com.android.volley.toolbox.Volley;import org.json.JSONObject;public class MainActivity extends Activity {    private RequestQueue requestQueue;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        requestQueue = Volley.newRequestQueue(this);//创建一个Volley的请求队列        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET,                "https://api.thinkpage.cn/v2/weather/all.json?city=北京&language=zh-chs&unit=c&aqi=city",                null, new Response.Listener<JSONObject>() {            @Override            public void onResponse(JSONObject jsonObject) {                Log.e("test", jsonObject.toString());            }        }, new Response.ErrorListener() {            @Override            public void onErrorResponse(VolleyError volleyError) {                Log.e("test", volleyError.toString());            }        });        requestQueue.add(jsonObjectRequest);    }
JsonObject是通过Volley所获得的JSON对象,他的参数显而易见,下面有2个listener,第一个是运行成功后的listener,后一个是失败后的listener,当然Volley也有其他的Object,有:
Volley提供了JsonObjectRequest、JsonArrayRequest、StringRequest等Request形式。

JsonObjectRequest:返回JSON对象。

JsonArrayRequest:返回JsonArray。

StringRequest:返回String,这样可以自己处理数据,更加灵活。

另外可以继承Request<T>自定义Request。

这种事最简单的Volley的用法。

2、volley 进行图片的请求,也就是ImageRequest这样就可以实现请求然后进行图片的现实:

 @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        requestQueue = Volley.newRequestQueue(this);        imageView = (ImageView) findViewById(R.id.image_net);        requestQueue = Volley.newRequestQueue(this);        ImageRequest imageRequest = new ImageRequest("http://d.hiphotos.baidu.com/zhidao/pic/item/562c11dfa9ec8a13e028c4c0f603918fa0ecc0e4.jpg",                new Response.Listener<Bitmap>() {                    @Override                    public void onResponse(Bitmap bitmap) {                    imageView.setImageBitmap(bitmap);                    }                },300,300, Bitmap.Config.ARGB_8888,new Response.ErrorListener() {            @Override            public void onErrorResponse(VolleyError volleyError) {            }        });
在这里让人都感觉不到是在多线程的情况下进行的,这是结果页面:


这张图片是在百度上找的,也就是上面的uri所对应的图片

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩吃积食了吐怎么办 11个宝宝不会爬怎么办 5岁宝宝严重挑食怎么办 孩子吃菜口味重怎么办? 孩子挑食不吃菜不吃肉怎么办 微信新的朋友回复频繁怎么办 忘了闺蜜生日怎么办 把闺蜜生日忘了怎么办 忘了闺蜜的生日怎么办 一岁宝宝不吃菜怎么办 幼儿园教案虫子爬进耳朵怎么办 鼻子出血怎么办幼儿说课 英语记不住发音不准怎么办 幼儿园孩子拼音记不住怎么办 孩子总是记不住东西怎么办 走丢了怎么办小班教案 走丢了怎么办小班社会 数学加减个十分不清怎么办 孩子b和d分不清怎么办 小孩b和d分不清怎么办 高一的数学不会怎么办 农村小孩到市里上学怎么办 和外国人打官司输了怎么办 碰见爱说你的领导怎么办 小孩脾气爆一句话就生气怎么办 小孩眼睛哭肿了怎么办 大人吵架吓到宝宝了怎么办 小孩晚上睡觉不踏实怎么办 二宝美籍大宝怎么办 小孩一洗澡就哭怎么办 孩子去外地上学学籍怎么办 非婚生子父亲想要孩子怎么办 非婚生子孩子父亲找不到了怎么办 3岁半宝宝认字怎么办 上课注意力不集中老是发呆怎么办 海绵宝宝吃了会怎么办 宝宝误吞李子核怎么办 24个月宝宝不愿意说话怎么办 孩子凉着肚子吐怎么办 教宝宝说话不会说怎么办 2岁宝宝语言退化怎么办