vooley(二)

1. ImageRequest的用法


        RequestQueue request=Volley.newRequestQueue(getContext());
        ImageRequest imgReq=new ImageRequest("http://192.168.1.100/View.png", new Response.Listener<Bitmap>() {
            @Override
            public void onResponse(Bitmap response) {
                img.setImageBitmap(response);
            }
        },0,0, Bitmap.Config.RGB_565, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {


            }
        });
        request.add(imgReq);
第一个参数就是图片的URL地址,这个没什么需要解释的。
第二个参数是图片请求成功的回调,这里我们把返回的Bitmap参数设置到ImageView中。
第三第四个参数分别用于指定允许图片最大的宽度和高度,如果指定的网络图片的宽度
或高度大于这里的最大值,则会对图片进行压缩,指定成0的话就表示不管图片有多
大,都不会进行压缩。
第五个参数用于指定图片的颜色属性,Bitmap.Config下的几个常量都可以在这里使
用,其中ARGB_8888可以展示最好的颜色属性,每个图片像素占据4个字节的大小,而
RGB_565则表示每个图片像素占据2个字节大小。第六个参数是图片请求失败的回调
这里我们当请求失败时在ImageView中显示一张默认图片。
 
2. ImageLoader的用法


        RequestQueue request = Volley.newRequestQueue(getContext());
        ImageLoader img = new ImageLoader(request, new ImageCache());
        ImageLoader.ImageListener listener = ImageLoader.getImageListener((ImageView) view.findViewById(R.id.imgRequest),
                R.mipmap.ic_launcher, R.mipmap.klogo2);
        img.get("http://192.168.1.100/View.png", listener);

---------------------------------------------------------------------------------------------------------------------------------------

ImageLoader  第一个参数就是RequestQueue对象,第二个参数是一个ImageCache对象


ImageLoader  第一个参数指定用于显示图片的ImageView控件,第二个参数指定加载图片的过程中显示的图片,第三个参数指定加载图片失败的情况下显示的图片。


get()方法接收两个参数,第一个参数就是图片的URL地址,第二个参数则是刚刚获取到的ImageListener对象


想对图片的大小进行限制,也可以使用get()方法的重载,指定图片允许的最大宽度和高度 get("www.baidu.com",listener, 200, 200); 
---------------------------------------------------------------------------------------------------------------------------------------
   public class ImageCache implements ImageLoader.ImageCache {
   
        private LruCache<String, Bitmap> mCache;


    public ImageCache() {
        int size = 10 * 1024 * 1024;//缓存的大小。
        mCache = new LruCache<String, Bitmap>() {
            @Override
            protected int sizeOf(String key, Bitmap value) {
   // 重写此方法来衡量每张图片的大小,默认返回图片数量。  
                int size=value.getRowBytes() * value.getHeight();
                return size;
            }
        };
    }


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


    @Override
    public void putBitmap(String url, Bitmap bitmap) {
        mCache.put(url,bitmap);
    }
}
---------------------------------------------------------------------------------------------------------------------------------------------
getRowBytes     用于计算位图每一行所占用的内存字节数。
getByteCount    用于计算位图所占用的内存字节数。
当向 ImageView 中加载一张图片时,首先会在 LruCache 的缓存中进行检查。如果找到了相应的键值,则会立刻更新ImageView ,否则开启一个后台线程来加载这张图片。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值