当前位置: 首页 > 编程笔记 >

Android Volley框架使用方法详解

韶景曜
2023-03-14
本文向大家介绍Android Volley框架使用方法详解,包括了Android Volley框架使用方法详解的使用技巧和注意事项,需要的朋友参考一下

本文主要从两个方面对Android Volley框架的使用方法进行讲解,具体内容如下

一、网络请求

1.get方式请求数据

// 1 创建一个请求队列
RequestQueue requestQueue = Volley.newRequestQueue(VolleyActivity.this);
 
// 2 创建一个请求
String url = "http://api.m.mtime.cn/PageSubArea/TrailerList.api";
 
StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
  // 正确接收数据回调
  @Override
  public void onResponse(String s) {
    tv_volley_result.setText(s);
  }
}, new Response.ErrorListener() {// 发生异常后的监听回调
  @Override
  public void onErrorResponse(VolleyError volleyError) {
    tv_volley_result.setText("加载失败" + volleyError);
  }
});
 
// 3 将创建的请求添加到请求队列中
requestQueue.add(stringRequest);
  

2.post方式请求数据

// 1 创建一个请求队列
RequestQueue requestQueue = Volley.newRequestQueue(VolleyActivity.this);
 
// 2 创建一个post请求
String url = "http://api.m.mtime.cn/PageSubArea/TrailerList.api";
StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
  @Override
  public void onResponse(String s) {
    tv_volley_result.setText(s);
  }
}, new Response.ErrorListener() {
  @Override
  public void onErrorResponse(VolleyError volleyError) {
    tv_volley_result.setText("请求失败" + volleyError);
  }
}) {
  @Override
  protected Map<String, String> getParams() throws AuthFailureError {
 
    Map<String, String> map = new HashMap<String, String>();
//            map.put("value1","param1");
 
    return map;
  }
};
 
// 3 将post请求添加到队列中
requestQueue.add(stringRequest);
  

3.请求Json数据

// 1 创建一个请求队列
RequestQueue requestQueue = Volley.newRequestQueue(VolleyActivity.this);
 
// 2 创建一个请求
String url = "http://api.m.mtime.cn/PageSubArea/TrailerList.api";
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(url, null, new Response.Listener<JSONObject>() {
  @Override
  public void onResponse(JSONObject jsonObject) {
    tv_volley_result.setText(jsonObject.toString());
  }
}, new Response.ErrorListener() {
  @Override
  public void onErrorResponse(VolleyError volleyError) {
    tv_volley_result.setText("请求失败" + volleyError);
  }
});
 
// 3 将创建的请求添加到请求队列中
requestQueue.add(jsonObjectRequest);   

二、图片加载

1.ImageRequest加载图片

// 1 创建一个请求队列
RequestQueue requestQueue = Volley.newRequestQueue(VolleyActivity.this);
 
// 2 创建一个图片的请求
String url = "http://img5.mtime.cn/mg/2016/10/11/160347.30270341.jpg";
ImageRequest imageRequest = new ImageRequest(url, new Response.Listener<Bitmap>() {
  @Override
  public void onResponse(Bitmap bitmap) {
    // 正确接收到图片
    iv_volley_result.setImageBitmap(bitmap);
  }
}, 0, 0, Bitmap.Config.RGB_565, new Response.ErrorListener() {
  @Override
  public void onErrorResponse(VolleyError volleyError) {
    iv_volley_result.setImageResource(R.drawable.atguigu_logo);
  }
});
 
// 3 将请求添加到请求队列中
requestQueue.add(imageRequest); 

2.Imageloader加载图片

// 创建一个请求队列
RequestQueue requestQueue = Volley.newRequestQueue(VolleyActivity.this);
 
ImageLoader imageLoader = new ImageLoader(requestQueue, new BitmapCache());
 
// 加载图片
String url = "http://img5.mtime.cn/mg/2016/10/11/160347.30270341.jpg";
ImageLoader.ImageListener imageListener = imageLoader.getImageListener(iv_volley_result, R.drawable.atguigu_logo, R.drawable.atguigu_logo);
imageLoader.get(url, imageListener);  

 BitmapCache.java

public class BitmapCache implements ImageLoader.ImageCache {
  private LruCache<String, Bitmap> mCache;

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

  @Override
  public Bitmap getBitmap(String url) {
    return mCache.get(url);
  }

  @Override
  public void putBitmap(String url, Bitmap bitmap) {
    mCache.put(url, bitmap);
  }
}

3.NetworkImageView加载图片

<com.android.volley.toolbox.NetworkImageView
  android:id="@+id/iv_volley_networkimagview"
  android:layout_width="200dp"
  android:layout_height="200dp"
  android:visibility="gone">
 
</com.android.volley.toolbox.NetworkImageView>
 

// 创建一个请求队列
RequestQueue requestQueue = Volley.newRequestQueue(VolleyActivity.this);
 
// 创建一个Imageloader
ImageLoader imageLoader = new ImageLoader(requestQueue, new BitmapCache());
 
// 默认图片和异常图片设置
iv_volley_networkimagview.setDefaultImageResId(R.drawable.atguigu_logo);
iv_volley_networkimagview.setErrorImageResId(R.drawable.atguigu_logo);
 
// 加载图片
String url = "http://img5.mtime.cn/mg/2016/10/11/160347.30270341.jpg";
iv_volley_networkimagview.setImageUrl(url, imageLoader);
 类似资料:
  • 本文向大家介绍Laravel框架使用Redis的方法详解,包括了Laravel框架使用Redis的方法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Laravel框架使用Redis的方法。分享给大家供大家参考,具体如下: 安装 laravel中使用redis首先需要你通过 Composer 安装 predis/predis 包: 配置 redis的配置文件是:config/datab

  • 本文向大家介绍django框架模板语言使用方法详解,包括了django框架模板语言使用方法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了django框架模板语言使用方法。分享给大家供大家参考,具体如下: 模板功能 作用:生成html界面内容,模版致力于界面如何显示,而不是程序逻辑。模板不仅仅是一个html文件,还包括了页面中的模板语言。 静态内容:css,js,html。 动态内容:

  • 本文向大家介绍Node.js Express 框架 POST方法详解,包括了Node.js Express 框架 POST方法详解的使用技巧和注意事项,需要的朋友参考一下 POST 方法 以下实例演示了在表单中通过 POST 方法提交两个参数,我们可以使用 server.js 文件内的 process_post 路由器来处理输入: index.htm 文件代码修改如下: server.js 文件代

  • 本文向大家介绍详解Python的Django框架中Manager方法的使用,包括了详解Python的Django框架中Manager方法的使用的使用技巧和注意事项,需要的朋友参考一下 在语句Book.objects.all()中,objects是一个特殊的属性,需要通过它查询数据库。 在第5章,我们只是简要地说这是模块的manager 。现在是时候深入了解managers是什么和如何使用了。 总之

  • 本文向大家介绍详解ABP框架中Session功能的使用方法,包括了详解ABP框架中Session功能的使用方法的使用技巧和注意事项,需要的朋友参考一下 如果一个应用程序需要登录,则它必须知道当前用户执行了什么操作。因此ASP.NET在展示层提供了一套自己的SESSION会话对象,而ABP则提供了一个可以在任何地方 获取当前用户和租户的IAbpSession接口。 关于IAbpSession 需要获

  • 本文向大家介绍layui前段框架日期控件使用方法详解,包括了layui前段框架日期控件使用方法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了layui-日期控件的实现代码,供大家参考,具体内容如下 效果图: 官网日期控件 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。