Android---Volley基本使用

依赖:

implementation 'com.android.volley:volley:1.1.1'

第一件事:定义一个RequestQueue。在实际开发中,这个对象应该写为一个

RequestQueue queue= Volley.newRequestQueue(this);

第二件事:定义一个Request
参数:请求类型(获取/上传)。网址/url。成功访问时的监听器。失败访问时的监听器。

 StringRequest stringRequest = new StringRequest(int method, Listener<String> listener,@Nullable ErrorListener errorlListener)

在网络访问时,记得添加网络权限:

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

加载文本

访问网站,用TextView将网站的html显示出来

RequestQueue queue= Volley.newRequestQueue(this);
String url="https://www.jd.com";
StringRequest stringRequest = new StringRequest(
        StringRequest.Method.GET,
        url,
        new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                textView.setText(response);
            }
        },
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e(TAG, "onErrorResponse: ", error);
            }
        }
);
queue.add(stringRequest);

加载图片

使用Volley函数加载图片:

RequestQueue queue=Volley.newRequestQueue(this);
String url="https://pixabay.com/get/55e0d340485aa814f1dc846096293e7c143cd9e6554c704f75297bd5964cc250_640.jpg";
//磁盘上的缓存
ImageLoader imageLoader=new ImageLoader(queue, new ImageLoader.ImageCache() {
    private LruCache<String,Bitmap> cache=new LruCache<>(50);
    @Override
    public Bitmap getBitmap(String url) {
        return cache.get(url);
    }
    @Override
    public void putBitmap(String url, Bitmap bitmap) {
        cache.put(url,bitmap);
    }
});
imageLoader.get(url, new ImageLoader.ImageListener() {
    @Override
    public void onResponse(ImageLoader.ImageContainer response, boolean isImmediate) {
        imageView.setImageBitmap(response.getBitmap());
    }
    @Override
    public void onErrorResponse(VolleyError error) {
        Log.e(TAG, "onErrorResponse: "+"Error");
    }
});

上面用的是ImageView,如果换成Volley自带的com.android.volley.toolbox.NetworkImageView会可以将上面的get方法换成下面更加简便的方法:

imageView.setImageUrl(url,imageLoader);

Gild加载图片

Glide

添加依赖

    implementation 'com.github.bumptech.glide:glide:4.11.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
String url="https://pixabay.com/get/55e0d340485aa814f1dc846096293e7c143cd9e6554c704f75297bd5964cc250_640.jpg";
Glide.with(this)
        .load(url)
        .placeholder(R.drawable.ic_launcher_background)
        .listener(new RequestListener<Drawable>() {
            @Override
            public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
                return false;
            }
            @Override
            public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
                return false;
            }
        })
        .into(imageView);

版权声明:本文为qq_43616001原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。