zoukankan      html  css  js  c++  java
  • 使用Volley框架中的ImageLoader来异步的加载图片

    Volley框架在请求网络图片方面也做了很多工作,提供了好几种方法.本文介绍使用ImageLoader来进行网络图片的加载.
    ImageLoader的内部使用ImageRequest来实现,它的构造器可以传入一个ImageCache缓存形参,实现了图片缓存的功能,同时还可以过滤重复链接,避免重复发送请求。
    下面是ImageLoader加载图片的实现方法:

    用一个类来编写图片加载和缓存的相关操作:例如:ImageWorkerManager 

    初始化全局图片缓存

    private void init(Context context) {
            mQueue = Volley.newRequestQueue(context);
            ImageCache.ImageCacheParams cacheParams = new ImageCache.ImageCacheParams(context,
                    FileManager.CACHE_IMAGE_PATH_NEW);
            cacheParams.setMemCacheSizePercent(context, 0.2f);
            imageCache = new ImageCache(cacheParams);
            mImageLoader = new ImageLoader(mQueue, imageCache);
        }

    加载图片

        
        public void loadCommonImage(String coverUrl, ImageView imageView, int loadingDrawableId, int defaultDrawableId,
                int width, int height) {//可以通过width,height来设置图片的最大宽度和高度,超过后volley会自动压缩。
            if (coverUrl == null) {
                coverUrl = "";
            }
    
            com.android.volley.plus.ImageCache cache = getImageCache();
            if (cache.getBitmapFromMemCache(coverUrl) != null) {
                imageView.setImageBitmap(cache.getBitmapFromMemCache(coverUrl));
            } else {
                ImageLoader.ImageContainer container = getImageLoader().get(coverUrl,
                        TransitionImageListener.obtain(imageView, loadingDrawableId, defaultDrawableId), width, height);
                imageView.setTag(container);
            }
        }


     在Activity中的应用:

     ImageWorkerManager.getInstance(getActivity()).loadCommonImage(Utils.getPhotoUrl(mUser.getAvatar()), mAvatar,
                    R.drawable.img_vip, R.drawable.img_vip, mAvatar.getWidth(), mAvatar.getHeight());

     注意:volley只适合小数据,小图片。用volley上传图像什么的要注意。如果图片过大最好要压缩。

  • 相关阅读:
    【bzoj4152】[AMPPZ2014]The Captain 堆优化Dijkstra
    【bzoj4547】Hdu5171 小奇的集合 矩阵乘法
    【bzoj1264】[AHOI2006]基因匹配Match 树状数组
    【bzoj3856】Monster 乱搞
    【bzoj4724】[POI2017]Podzielno 二分
    【bzoj4976】宝石镶嵌 乱搞+dp
    【bzoj4070】[Apio2015]雅加达的摩天楼 set+堆优化Dijkstra
    【bzoj4627】[BeiJing2016]回转寿司 离散化+树状数组
    【bzoj2124】等差子序列 STL-bitset
    【bzoj1996】[Hnoi2010]chorus 合唱队 区间dp
  • 原文地址:https://www.cnblogs.com/hupp/p/4797868.html
Copyright © 2011-2022 走看看