imageloder1

来源:互联网 发布:嘉靖 万历 知乎 编辑:程序博客网 时间:2024/05/19 03:20
DisplayImageOptions options = new DisplayImageOptions.Builder()    // 设置图片在下载期间显示的图片            .showImageOnLoading(R.drawable.ic_launcher)            // 设置图片Uri为空或是错误的时候显示的图片            .showImageOnFail(R.drawable.ic_launcher)            // 设置下载的图片是否缓存在内存中            .cacheInMemory(true)            // 设置下载的图片是否缓存在SD卡中            .cacheOnDisc(true)            // --------------------------------------------------------------------            // 如果您只想简单使用ImageLoader这块也可以不用配置            // 是否考虑JPEG图像EXIF参数(旋转,翻转)            .considerExifParams(true)            /**             * imageScaleType: EXACTLY :图像将完全按比例缩小的目标大小             * EXACTLY_STRETCHED:图片会缩放到目标大小完全 IN_SAMPLE_INT:图像将被二次采样的整数倍             * IN_SAMPLE_POWER_OF_2:图片将降低2倍,直到下一减少步骤,使图像更小的目标大小 NONE:图片不会调整             *              */            // 设置图片以如何的编码方式显示            .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)            // 设置图片的解码类型//            .bitmapConfig(Bitmap.Config.RGB_565)            // 设置图片的解码配置            // .decodingOptions(options)            // .delayBeforeLoading(int delayInMillis)//int            // delayInMillis为你设置的下载前的延迟时间            // 设置图片加入缓存前,对bitmap进行设置            // .preProcessor(BitmapProcessor preProcessor)            // 设置图片在下载前是否重置,复位            .resetViewBeforeLoading(true)            // 是否设置为圆角,弧度为多少 RoundedBitmapDisplayer            .displayer(new CircleBitmapDisplayer())            // //CircleBitmapDisplayer            // .displayer(new RoundedBitmapDisplayer(Color.WHITE, 5))            // 是否图片加载好后渐入的动画时间            .displayer(new FadeInBitmapDisplayer(100))            // 构建完成            // -------------------------------------------------------------------            .build();    return options;}public static void initImage(Context context) {    ImageLoaderConfiguration.Builder configuration = new ImageLoaderConfiguration.Builder(            context);    // 本段代码,如果是测试使用时,可以不添加,不影响ImageLoader的正常使用    configuration            .memoryCacheExtraOptions(200, 200)            // default = device screen dimensions            // 缓存到磁盘中的图片宽高            .diskCacheExtraOptions(200, 200, null)            // .taskExecutor(null)            // .taskExecutorForCachedImages()            .threadPoolSize(3)            // default 线程优先级            .threadPriority(Thread.NORM_PRIORITY - 2)            // default            .tasksProcessingOrder(QueueProcessingType.FIFO)            // // default设置在内存中缓存图像的多种尺寸            // 加载同一URL图片时,imageView从小变大时,从内存缓存中加载            .denyCacheImageMultipleSizesInMemory()            // 超过设定的缓存大小时,内存缓存的清除机制            .memoryCache(new LruMemoryCache(2 * 1024 * 1024))            // 内存的一个大小            .memoryCacheSize(2 * 1024 * 1024)            .memoryCacheSizePercentage(13)            // default 将图片信息缓存到该路径下            // default 磁盘缓存的大小            .diskCacheSize(50 * 1024 * 1024)            // 磁盘缓存文件的个数            .diskCacheFileCount(100)            // 磁盘缓存的文件名的命名方式//一般使用默认值 (获取文件名称的hashcode然后转换成字符串)或MD5 new            // Md5FileNameGenerator()源文件的名称同过md5加密后保存            .diskCacheFileNameGenerator(new HashCodeFileNameGenerator())            // 设置默认的图片加载            // 使用默认的图片解析器            .imageDecoder(new BaseImageDecoder(true))            // default            .defaultDisplayImageOptions(DisplayImageOptions.createSimple())            .writeDebugLogs();    ImageLoader.getInstance().init(configuration.build());}public static class AnimateFirstDisplayListener extends        SimpleImageLoadingListener {    @Override    public void onLoadingComplete(String imageUri, View view,            Bitmap loadedImage) {        final List<String> displayedImages = Collections                .synchronizedList(new LinkedList<String>());        if (loadedImage != null) {            ImageView imageview = (ImageView) view;            boolean firstDispaly = !displayedImages.contains(imageUri);            if (firstDispaly) {                FadeInBitmapDisplayer.animate(imageview, 1000);                displayedImages.add(imageUri);            }
0 0
原创粉丝点击