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消耗和减少网络请求。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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 让容器管理更轻松!