Volley的应用

首先去github.com下载Volley,新建一个项目,并在libs中导入Volley.jar

在activity_main.xml中添加两个空间,用于图片的显示:

        <ImageView

            android:id="@+id/iv"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content" />

       

        <com.android.volley.toolbox.NetworkImageView

            android:id="@+id/imageview"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_below="@id/iv"/>

 

在MainActivity.java文件中:

        public class MainActivity extends Activity {

   

            /**

             *Volley是Android平台网络通信库:更快、更简单、更健壮

             *Volley提供的功能:

             *1.JSON、图片(异步)

             *2.网络请求的排序

             *3.网络请求的优先级处理

             *4.缓存

             *5.多级别的取消请求

             *6.与Activity生命周期联动

             *

             */

 

            private ImageView iv;

            private NetworkImageView iv2;

           

            @Override

            protected void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);

                setContentView(R.layout.activity_main);

               

                init();

                getJSONVolley();

                

            }

           

            public void init(){

                iv = (ImageView) findViewById(R.id.iv);

                iv2 = (NetworkImageView) findViewById(R.id.imageview);

                loadImageVolley();

                netWorkImageViewVolley();

            }

           

            //获取Json字符串

            public void getJSONVolley(){

                RequestQueue requestQueue = Volley.newRequestQueue(this);

                String jSONDateUrl = "http://wthrcdn.etouch.cn/weather_mini?city=北京";

                JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(

                        Request.Method.GET, jSONDateUrl, null,

                        new Response.Listener<JSONObject>() {

 

                            @Override

                            public void onResponse(JSONObject response) {

                                System.out.println("response="+ response);

                               

                            }

                        }, new Response.ErrorListener() {

 

                            @Override

                            public void onErrorResponse(VolleyError arg0) {

                                System.out.println("对不起,有问题");

                                

                            }

                        });

                requestQueue.add(jsonObjectRequest);

            }

           

            //网络加载图片

            public void loadImageVolley(){

                String imageUrl = "http://p0.so.qhimg.com/t0118439f1e23300c6a.jpg";

                RequestQueue requestQueue = Volley.newRequestQueue(this);

                final LruCache<String, Bitmap> lurcache = new LruCache<String, Bitmap>(20);

                ImageCache imageCache = new ImageCache() {

                   

                    @Override

                    public void putBitmap(String key, Bitmap value) {

                        lurcache.put(key, value);

                       

                    }

                   

                    @Override

                    public Bitmap getBitmap(String key) {

                       

                        return lurcache.get(key);

                    }

                };

                ImageLoader imageLoader = new ImageLoader(requestQueue, imageCache);

                ImageListener listener = imageLoader.getImageListener(iv,

                        R.drawable.ic_launcher, R.drawable.ic_launcher);

                imageLoader.get(imageUrl, listener);

               

            }

           

            public void netWorkImageViewVolley(){

                String imageUrl = "http://p0.so.qhimg.com/t0118439f1e23300c6a.jpg";

                RequestQueue requestQueue = Volley.newRequestQueue(this);

                final LruCache<String, Bitmap> lruCache = new LruCache<String, Bitmap>(20);

                ImageCache iamgeCache = new ImageCache() {

                   

                    @Override

                    public void putBitmap(String arg0, Bitmap arg1) {

                        lruCache.put(arg0, arg1);

                       

                    }

                   

                    @Override

                    public Bitmap getBitmap(String arg0) {

                        

                        return lruCache.get(arg0);

                    }

                };

                ImageLoader imageLoader = new ImageLoader(requestQueue, iamgeCache);

                iv2.setTag("url");

                iv2.setImageUrl(imageUrl, imageLoader);

               

            }

        }

 

在程序运行之前记得在清单文件添加访问网络权限:

    <uses-permission android:name="android.permission.INTERNET"/>

    

posted @   飞牛冲天  阅读(87)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示