美文网首页
Volley学习笔记

Volley学习笔记

作者: RoboyCore | 来源:发表于2016-12-22 21:49 被阅读13次

1.Application设置请求队列

public class MyApplication extends Application {
public static RequestQueue sQueue;
@Override
public void onCreate() {
    super.onCreate();
    sQueue = Volley.newRequestQueue(this);
}
}

2.创建字符请求对象

 mRequest = new StringRequest(url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            tv.setText(response);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            error.printStackTrace();
        }
    });
    MyApplication.sQueue.add(mRequest);

3.创建图片请求对象,网络请求图片

  • 普通下载图片
    * 参数说明:
    * 1、请求的网址
    * 2、请求成功回调接口
    * 3、图片的最大的宽度
    * 4、图片的最大的高度
    * 5、图片在ImageView上面显示的样式
    * 6、图片的解码格式
    * 7、请求失败的回调接口
    * */
    ImageRequest request1=new ImageRequest(url1, new Response.Listener<Bitmap>() {
    @Override
    public void onResponse(Bitmap response) {
    iv1.setImageBitmap(response);
    }
    }, iv1.getWidth(), 200, ImageView.ScaleType.FIT_CENTER, Bitmap.Config.ARGB_8888, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
    Toast.makeText(ImageActivity.this,"网络异常",Toast.LENGTH_LONG).show();
    }
    });
    //开启请求
    MyApplication.queue.add(request1);

4.可以使用volley封装的ImageView,可以设置缓存和异步下载对象

imageLoader
 <com.android.volley.toolbox.NetworkImageView
    android:id="@+id/iv2"
    android:src="@mipmap/ic_launcher"
    android:onClick="click"
    android:layout_width="match_parent" android:layout_height="100dp"/>

//设置错误图片

            iv2.setErrorImageResId(R.mipmap.ic_launcher);
            ImageLoader loader1=new ImageLoader(MyApplication.queue,new MyImageCache());
            iv2.setImageUrl(url1,loader1);//开启异步下载

5使用带缓存的imageLoader

 ImageLoader imageLoader2 = new ImageLoader(MyApplication.sQueue,new MyImageCache());
          ImageLoader.ImageListener listener=ImageLoader.getImageListener(
            iv3,R.mipmap.ic_launcher,R.mipmap.ic_launcher);//默认和错误图片
            //加载图片
            imageLoader2.get(url,listener);

6、设置自定义的缓存

public class MyImageCache implements ImageLoader.ImageCache {
private SoftReference<LruCache<String,Bitmap>> softReference;
private ReferenceQueue<LruCache<String,Bitmap>> queue;//软引用图片回收会导致空指针,放入引用队列,可在没有引用时取回对象

public MyImageCache() {
    queue=new ReferenceQueue<>();
    softReference=new SoftReference<LruCache<String, Bitmap>>(
            new LruCache<String, Bitmap>(
                    (int) (Runtime.getRuntime().maxMemory()/8))
            {
            @Override
            protected int sizeOf(String key, Bitmap value) {
                return value.getByteCount();//重写sizeOf
            }
    },queue);

}

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

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

相关文章

  • Volley学习笔记

    1.Application设置请求队列 2.创建字符请求对象 3.创建图片请求对象,网络请求图片 普通下载图片* ...

  • Volley学习笔记

    Volley简述 Volley是Google推出的用于Android下发起Http请求的网络库。它适合于频繁的,数...

  • Volley学习笔记

    Volley的增强工具 Volley Request Manager adb logcat中显示Volley lo...

  • Volley学习

    Volley学习 参考文章 Android Volley完全解析(一),初识Volley的基本用法Android ...

  • 每日一题:Volley源码问题分析

    每日一题:Volley源码问题分析 学习推荐_Volley源码解析 面试率: ★★★☆☆ 面试提醒 Volley是...

  • Volley+OkHttp学习笔记

    OkHttp支持 Http1.0/1.1/2/0、SPDY协议,用来进行客户端和服务器的连接以及数据交互,扮演着传...

  • Volley学习

    1、基本使用 Volley适合轻量、高并发的网络请求,但如果大数据量的操作,比如上传下载文件,就不太适合了。使用V...

  • 安卓学习笔记-----Volley框架学习

    公司用的volley是自己封装好的,看了一下代码,理解起来有点难度,所以决定先学习一下volley的基本用法。 G...

  • Android框架学习笔记04Volley框架

    上一篇中我们学习了Retrofit框架,这一篇我们学习另外一个网络请求框架——Volley。Volley框架是Go...

  • Android:Volley的使用和Volley源码分析

    Volley网络框架 Volley的简单使用 Volley源码分析 }

网友评论

      本文标题:Volley学习笔记

      本文链接:https://www.haomeiwen.com/subject/nzxhvttx.html