Volley使用

Volley是常用的网络请求框架,主要的用法如下:

获取字符串:

复制代码
    public static void volleyTest1(final Context context){
        RequestQueue queue = Volley.newRequestQueue(context);
        final String url = "http://www.baidu.com";
        StringRequest request = new StringRequest(url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String s) {
                        Toast.makeText(context, s, Toast.LENGTH_SHORT).show();
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError volleyError) {
                        Toast.makeText(context, volleyError.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                }
        );
        queue.add(request);
    }
复制代码

获取图片:

复制代码
    public static void volleyImageTest1(final Context context, final ImageView imgView){
        final String url = "//img-my.csdn.net/uploads/201404/13/1397393290_5765.jpeg";
        ImageRequest request = new ImageRequest(url,
                new Response.Listener<Bitmap>() {
                    @Override
                    public void onResponse(Bitmap bitmap) {
                        Toast.makeText(context, "get image success!", Toast.LENGTH_SHORT).show();
                        imgView.setImageBitmap(bitmap);
                    }
                },
                0, 0, ScaleType.FIT_XY, Config.RGB_565,
                new Response.ErrorListener(){
                    @Override
                    public void onErrorResponse(VolleyError volleyError) {
                        Toast.makeText(context, "get image failed!", Toast.LENGTH_SHORT).show();
                    }
                }
        );

        RequestQueue queue = Volley.newRequestQueue(context);
        queue.add(request);
    }
复制代码

异步加载图片:

复制代码
    public static void volleyImageTest2(final Context context, final ImageView imgView){


        final BitmapCache bitmapCache = new BitmapCache();
        RequestQueue queue = Volley.newRequestQueue(context);
        ImageLoader imgLoader = new ImageLoader(queue, bitmapCache);
        ImageLoader.ImageListener listener = imgLoader.getImageListener(imgView, R.mipmap.ic_launcher, R.mipmap.ic_launcher);

//        final String url = "//img-my.csdn.net/uploads/201404/13/1397393290_5765.jpeg";
        final String url = "http://img1.skqkw.cn:888/2014/12/06/08/21ofdtyslqn-62877.jpg";
        imgLoader.get(url, listener);
    }
复制代码

BitmapCache类:

复制代码
    private static class BitmapCache implements ImageCache{
        private LruCache<String, Bitmap> lruCache;

        public BitmapCache(){
            int maxSize = 8*1024*1024;
            lruCache = new LruCache<String, Bitmap>(maxSize){
                @Override
                protected int sizeOf(String key, Bitmap bitmap) {
                    return bitmap.getRowBytes()*bitmap.getHeight();
                }
            };
        }

        @Override
        public Bitmap getBitmap(String s) {
            return lruCache.get(s);
        }

        @Override
        public void putBitmap(String s, Bitmap bitmap) {
            lruCache.put(s, bitmap);
        }
复制代码

Volley功能强大,能够对网络请求进行缓存,能够有效减少CPU消耗和减少网络请求。

posted @   丛林小阁楼  阅读(173)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示