ImageLoader实用方法讲解

本文详细介绍如何使用Universal Image Loader解决Android应用中图片加载的常见问题,包括错乱与内存溢出。通过配置ImageLoader,实现图片缓存,提高加载效率。

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

        做android应用的时候,多少会接触到异步加载图片,或者加载大量图片的问题,而加载图片我们常常会遇到许多的问题,比如说图片的错乱,OOM等问题,对于新手来说,这些问题解决起来会比较吃力,所以就有很多的开源图片加载框架应运而生,比较著名的就是Universal-Image-Loader。

 

下载JAR包添加到工程libs目录下

         (https://github.com/nostra13/Android-Universal-Image-Loader)

      或添加依赖(implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5')

加上读写、网络权限

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>

 新建一个MyApplication继承Application,并在onCreate()中创建ImageLoader的配置参数,并初始化到ImageLoader

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        File cacheDir = StorageUtils.getCacheDirectory(this);
        //创建ImageLoaderConfiguration全局配置信息
        ImageLoaderConfiguration build= new ImageLoaderConfiguration.Builder(this)
        .threadPoolSize(5) // 线程池大小
        .threadPriority(Thread.NORM_PRIORITY - 2) // 设置线程优先级
        .memoryCacheSize(5 * 1024 * 1024)  // 内存缓存大小
        .diskCache(new UnlimitedDiskCache(cacheDir)) // 设置磁盘缓存策略
        .diskCacheSize(50 * 1024 * 1024) // 设置磁盘缓存的大小
        .diskCacheFileCount(50) // 磁盘缓存文件数量
        .diskCacheFileNameGenerator(new Md5FileNameGenerator()) // 磁盘缓存时图片名称加密方式
        .build();
        
        //单例模式 懒汉式
        //初始化imageloader
          //初始化
        ImageLoader.getInstance().init(build);
    }

        public DisplayImageOptions Options() {
              //对图片进行参数设置
              DisplayImageOptions options = new DisplayImageOptions.Builder()
                .showImageOnLoading(R.mipmap.ic_launcher_round) // 加载过程中的显示图片
                .showImageForEmptyUri(R.mipmap.ic_launcher_round) // 路径为空时显示的图片
                .cacheInMemory(true) // 需要缓存在内存中
                .cacheOnDisk(true) // 需要缓存到磁盘中
                .bitmapConfig(Bitmap.Config.RGB_565) // bitmap模式
                .displayer(new RoundedBitmapDisplayer(90)) // 设置图片显示形式(圆角 or 渐变等)
                .displayer(new CircleBitmapDisplayer()) // 设置图片显示形式(圆形)
                .build();
        return options;
    }
}

显示图片时用的: 

          //加载图片                             路径     控件   
        ImageLoader.getInstance().displayImage(path, imageView);

 

记得加: 

android:name="MyApplication"              //初始化

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值