Android 图片框架

说到图片框架现在比较成熟的要数picasso和Glide了 但今天要说的是ImageLoader框架 ,这个框架在有些公司仍然在使用。用的比较少而已,但用法都差不多,主要还是为了记录学习

1.导入ImageLoader框架jar包    universal-image-loader-1.9.4-with-sources.jar 

2.在应用程序完成初始化操作 Application

public void initImageLoader(Context context) {

// 设置缓存的目录

    File cacheDir = StorageUtils.getOwnCacheDirectory(context, SDPATH);

    ImageLoaderConfiguration config =new ImageLoaderConfiguration.Builder(

context)

.memoryCacheExtraOptions(480, 800)

// max width, max height,即保存的每个缓存文件的最大长宽

            .threadPoolSize(3)

// 线程池内加载的数量

            .threadPriority(Thread.NORM_PRIORITY -2)

.denyCacheImageMultipleSizesInMemory()

.diskCacheFileNameGenerator(new Md5FileNameGenerator())

// 将保存的时候的URI名称用MD5

            // 加密

            .memoryCache(new UsingFreqLimitedMemoryCache(2 *1024 *1024))

// You

// can

// pass

// your

// own

// memory

// cache

            // implementation/你可以通过自己的内存缓存实现

            .memoryCacheSize(2 *1024 *1024)

// 内存缓存的最大值

            .diskCacheSize(50 *1024 *1024)

// 50 Mb sd卡(本地)缓存的最大值

            .tasksProcessingOrder(QueueProcessingType.LIFO)

// 将内存缓存到内存中

            .memoryCache(new WeakMemoryCache())

// 线程池内加载的数量

            .defaultDisplayImageOptions(defaultOptions)

// 自定义缓存目录

            .discCache(new UnlimitedDiskCache(cacheDir))

.memoryCache(new WeakMemoryCache())

.discCacheSize(50 *1024 *1024)

.discCacheFileCount(100)

// 解决加载图片时java.io.FileNotFoundException:

            // eg:http://112.64.173.178/LETU/SJYS_IMG/异常

            .imageDownloader(new BaseImageDownloader(context, 10000, 10000))

.writeDebugLogs().build();

    // 全局初始化

    ImageLoader.getInstance().init(config);

}

public static DisplayImageOptionsdefaultOptions =new DisplayImageOptions.Builder()

// 设置下载的图片是否缓存在内存中

        .cacheInMemory(true)

// 设置下载的图片是否缓存在SD卡中

        .cacheOnDisc(true)

// 设置图片的解码类型

        .bitmapConfig(Bitmap.Config.RGB_565)

// 设置图片的质量(图片以如何的编码方式显示 ),其中,imageScaleType的选择值:

        // EXACTLY :图像将完全按比例缩小的目标大小

        // EXACTLY_STRETCHED:图片会缩放到目标大小完全

        // IN_SAMPLE_INT:图像将被二次采样的整数倍

        // IN_SAMPLE_POWER_OF_2:图片将降低2倍,直到下一减少步骤,使图像更小的目标大小

        // NONE:图片不会调整

        .imageScaleType(ImageScaleType.EXACTLY)

.showStubImage(R.drawable.icon_waiting_list)

.showImageForEmptyUri(R.drawable.icon_waiting_list)

.showImageOnFail(R.drawable.icon_waiting_list)

// 载入图片前稍做延时可以提高整体滑动的流畅度

        .delayBeforeLoading(100).build();

3.在使用的地方使用就可以了 跟Glide用法一样

ImageLoader.getInstance().displayImage(url, imageView, options)  参数分别是图片资源可以是网络图片也可以是本地

第二个参数是图片控件  第三个是配置图片显示的参数图片大小,是否保存到SD卡等的配置

你可能感兴趣的:(Android 图片框架)