universalimageloader初入

本文详细介绍 Universal Image Loader (UIL) 的功能与优点,包括多线程图片下载、进度监听、缓存策略自定义等功能。提供了UIL配置示例代码,展示了如何初始化ImageLoader并设置图片加载选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UIL的功能及优点(转)

  • 支持从网络,本地,项目内读取图片

  • 多线程下载图片

  • 支持图片下载进度监听

  • 支持图片加载起始,加载中,加载结束等毁掉函数

  • 包含内存缓存和磁盘缓存, 并可进行缓存大小等参数的配置

  • 支持占位图,及图片加载过程中图片,以及图片加载失败图片的显示

  • 支持图片加载成功后再处理

  • 支持对bitmap裁剪等处理

  • 可在ListView等滚动控件发生滚动时,暂定图片加载

  • 提供在网路较慢时图片的加载

  • 扩展性强,内存缓存和磁盘缓存策略可自行实现,图片加载各种参数也可自由配置!

先在配置文件中加入:
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'
然后新建一个"ImageLoaderManger"文件
public class ImageLoaderManger {
    /**
     * 默认参数
     */
    private static final int THREAD_COUNT = 4; //表示有几条UIL最多可以有多少条线程
    private static final int PROPRITY = 2; //表示我们的图片加载的优先级
    private static final int DISK_CACHE_SIZE = 50 * 1024 * 1024; //表示缓存最大存储的空间
    private static final int CONNECTION_TIME_OUT = 5 * 1000;//连接超时时间
    private static final int READ_TIME_OUT = 30 * 1000;//读取超时时间

    private static ImageLoader mImageLoader = null;
    private static  ImageLoaderManger mImageLoaderManger;

    public static ImageLoaderManger getmImageLoaderManger(Context context){
        if (mImageLoaderManger==null){
            mImageLoaderManger = new ImageLoaderManger(context);
        }
        return mImageLoaderManger;
    }
    private ImageLoaderManger(Context context){
        ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(context)
                .threadPoolSize(THREAD_COUNT) //配置图片下载线程最大数量
                .threadPriority(Thread.NORM_PRIORITY - PROPRITY)
                .denyCacheImageMultipleSizesInMemory()//设置是否可以缓存不同尺寸的视图
                .memoryCache(new WeakMemoryCache()) //使用弱引用内存缓存
                .diskCacheSize(DISK_CACHE_SIZE) //分配硬盘缓存大小存储图片
                .diskCacheFileNameGenerator(new Md5FileNameGenerator())//设置图片命名规则(MD5)
                .tasksProcessingOrder(QueueProcessingType.FIFO)//图片下载顺序
                .defaultDisplayImageOptions(getDefultOptions())//设置默认图片加载Options
                .imageDownloader(new BaseImageDownloader(context,CONNECTION_TIME_OUT,READ_TIME_OUT))//设置图片下载器
                .writeDebugLogs()//设置dubug模式下打印日志
                .build();
        ImageLoader.getInstance().init(configuration);
        mImageLoader = ImageLoader.getInstance();

    }
    private DisplayImageOptions getDefultOptions(){
        DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder()
                .showImageForEmptyUri(R.drawable.loadfailure)//定义图片地址为空的时候加载的图片
                .showImageOnFail(R.drawable.loadfailure)//定义图片加载失败的默认图片
                .cacheInMemory(true) //设置图片是否可以缓存在内存
                .cacheOnDisk(true)//设置图片是否可以缓存在硬盘
                .bitmapConfig(Bitmap.Config.RGB_565)//使用图片解码类型
                .decodingOptions(new BitmapFactory.Options())//图片解码配置
                .build();
        return displayImageOptions;

}

}

未完...


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值