美文网首页
universal-image-loader的基本使用

universal-image-loader的基本使用

作者: 阳光下的狐狸 | 来源:发表于2016-12-22 14:39 被阅读0次

    使用之前先看一下使用方法的注意事项

    1.ImageLoaderConfiguration必须配置并且全局化的初始化这个配置ImageLoader.getInstance().init(config); 否则也会出现错误提示
    2.ImageLoader是根据ImageView的height,width确定图片的宽高
    3.如果经常出现OOM(别人那边看到的,觉得很有提的必要)
    ①减少配置之中线程池的大小,(.threadPoolSize).推荐1-5;
    ②使用.bitmapConfig(Bitmap.config.RGB_565)代替ARGB_8888;
    ③使用.imageScaleType(ImageScaleType.IN_SAMPLE_INT)
    或者try.imageScaleType(ImageScaleType.EXACTLY);
    ④避免使用RoundedBitmapDisplayer.他会创建新的ARGB_8888格式的Bitmap对象;
    ⑤使用.memoryCache(new WeakMemoryCache())不要使用.cacheInMemory();
    解决OOM的终极方法--点击跳转

    使用方法

    第一步:对universal-image-loader的初始化设置
    public class app extends Application {
    
        public void onCreate() {
            initImageLoader(getApplicationContext());
        };
    
        public static void initImageLoader(Context context) {
            ImageLoaderConfiguration config =new ImageLoaderConfiguration.Builder(context)
                    // max width, max height,即保存的每个缓存文件的最大长宽
                    .memoryCacheExtraOptions(1280, 720)
                    // 线程池内加载的数量
                    .threadPoolSize(3) 
                    .threadPriority(Thread.NORM_PRIORITY - 2).denyCacheImageMultipleSizesInMemory()
                    // 将保存的时候的URI名称用MD5加密
                    .diskCacheFileNameGenerator(new Md5FileNameGenerator())
                    // 你可以通过自己的内存缓存实现
                    .memoryCache(new LargestLimitedMemoryCache(2 * 1024 * 1024)).diskCacheSize(200 * 1024 * 1024) 
                    .tasksProcessingOrder(QueueProcessingType.LIFO)
                    .imageDownloader(new BaseImageDownloader(context, 5 * 1000, 30 * 1000)).writeDebugLogs().build();
            // 全局初始化此配置
            ImageLoader.getInstance().init(config);
        }
    }
    
    第二步:对ImageLoader和DisplayImageOptions初始化
    private void InitImgeLoader(){
            ImageLoaderimageLoader = ImageLoader.getInstance();    
            DisplayImageOptions optionsnew = new DisplayImageOptions.Builder()
            .showImageOnLoading(R.drawable.black)// 设置图片下载期间显示的图片
            .showImageForEmptyUri(R.drawable.ic_empty)// 设置图片Uri为空或是错误的时候显示的图片
            .showImageOnFail(R.drawable.ic_error)// 设置图片加载或解码过程中发生错误显示的图片
            .cacheInMemory(true)// 设置下载的图片是否缓存在内存中
            .cacheOnDisk(true) // 设置下载的图片是否缓存在内存卡中
            .bitmapConfig(Bitmap.Config.ARGB_8888).build();// 设置图片显示相关参数
        }
    
    第三步:universal-image-loader的使用
    imageLoader.displayImage(参数1(网络图片的网址),参数2(加载图片的控件),参数3(optionsnew));
    

    相关文章

      网友评论

          本文标题:universal-image-loader的基本使用

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