ImageLoader配置(凝视)

/**
     * 配置ImageLoader
     */
    private void configImageLoader() {

        File discCacheDir = StorageUtils.getOwnCacheDirectory(getApplicationContext(), "/iWorker/Cache/images");
        int memClass = ((android.app.ActivityManager) getSystemService(Context.ACTIVITY_SERVICE)).getMemoryClass();
        memClass = memClass > 32 ? 32 : memClass;
        // 使用可用内存的1/8作为图片缓存
        Logger.d( " memory memClass size:{%s}", memClass);
        final int cacheSize = 1024 * 1024 * memClass / 4;
        Logger.d( " memory cache size:{%s}", cacheSize);
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
                .memoryCacheExtraOptions(240, 240).taskExecutor(Executors.newFixedThreadPool(10))
                        // 开启十个线程下载图片,默认是3个
                        // 设置缓存的每一个文件的最大宽高,默认是屏幕宽高
                        // .diskCacheExtraOptions(1280, 1280, null)
                        // 存放到SD卡上的最大宽高
                        // .diskCacheExtraOptions(240, 240, null)
                        // .threadPoolSize(3)
                        // 设置线程池大小,默觉得3
                        // .denyCacheImageMultipleSizesInMemory()
                        // 禁止缓存多份不同大小的图片
                        // .threadPriority(Thread.NORM_PRIORITY - 1)
                        // 线程优先级。默认
                        // .tasksProcessingOrder(QueueProcessingType.FIFO)
                        // .taskExecutor(executor)
                .memoryCache(new LruMemoryCache(cacheSize))
                        // 缓存策略
                        // 默认已设为1/8
                        // .memoryCacheSize(cacheSize)
                        // .memoryCacheSizePercentage(13)//设置最大内存缓存大小
                .diskCache(new UnlimitedDiscCache(discCacheDir))
                        // 硬盘缓存策略:这个缓存类没有不论什么的限制
                        // Sets disk cache for
                        // images.默觉得Android/data/[app_package_name]/cache
                        // .diskCacheSize(50 * 1024 * 1024)//50M
                        // .diskCacheFileCount(500)//Sets maximum file count in disk
                        // cache directory.设置最大文件数
                        // .diskCacheFileNameGenerator(new
                        // HashCodeFileNameGenerator())//将保存的时候的URI名称用HASHCODE加密
                        // .imageDownloader(new IworkerImageDownloader(this))
                        // .defaultDisplayImageOptions(DisplayImageOptions.createSimple())
                         .writeDebugLogs()// 输出Debug信息,释放版本号的时候,不须要这句
                .build();
        ImageLoader.getInstance().init(config);
    }
一般在自己定义的Application中进行配置。





posted @ 2017-06-12 12:25  zsychanpin  阅读(211)  评论(0编辑  收藏  举报