您的位置:首页 > 其它

vooley(二)

2016-02-20 21:10 246 查看
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 ,否则开启一个后台线程来加载这张图片。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: