古老的图片加载框架-----ImageLoader
来源:互联网 发布:自动上色软件 编辑:程序博客网 时间:2024/04/29 21:22
相信大家平时做Android应用的时候,多少会接触到异步加载图片,或者加载大量图片的问题,而加载图片我们常常会遇到许多的问题,比如说图片的错乱,OOM等问题,对于新手来说,这些问题解决起来会比较吃力,所以就有很多的开源图片加载框架应运而生,比较著名的就是Universal-Image-Loader,相信很多朋友都听过或者使用过这个强大的图片加载框架,今天这篇文章就是对这个框架的基本介绍以及使用,主要是帮助那些没有使用过这个框架的朋友们。
//废话不多说直接上代码/** * 这是一个封装好的工具类 大家可以参考 */ public class ImageLoaderUilts { public static ImageLoaderConfiguration getImageLoader(Context context) { File cacheDir = StorageUtils.getCacheDirectory(context); ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context) // 设置内存图片的宽高 .memoryCacheExtraOptions(50, 50) // default = device screen dimensions // 缓存到磁盘中的图片宽高 .diskCacheExtraOptions(50, 50, null) // .taskExecutor(null) // .taskExecutorForCachedImages() .threadPoolSize(3) // default 线程优先级 .threadPriority(Thread.NORM_PRIORITY - 2) //加载同一URL图片时,imageView从小变大时,从内存缓存中加载 .denyCacheImageMultipleSizesInMemory() // 内存的一个大小 .memoryCacheSize(2 * 1024 * 1024) .memoryCacheSizePercentage(13) // default 将图片信息缓存到该路径下 // .diskCache(new UnlimitedDiskCache(cacheDir)) // default 磁盘缓存的大小 .diskCacheSize(50 * 1024 * 1024) // 磁盘缓存文件的个数 .diskCacheFileCount(100) //磁盘缓存的文件名的命名方式//一般使用默认值 (获取文件名称的hashcode然后转换成字符串)或MD5 new Md5FileNameGenerator()源文件的名称同过md5加密后保存 .writeDebugLogs().build(); return config; } public static DisplayImageOptions getOptions (){ DisplayImageOptions options = new DisplayImageOptions.Builder() // 设置图片在下载期间显示的图片 .showImageOnLoading(R.drawable.ic_launcher) // 设置图片Uri为空或是错误的时候显示的图片 .showImageForEmptyUri(R.drawable.ic_launcher) // 设置图片加载/解码过程中错误时候显示的图片 .showImageOnFail(R.drawable.ic_launcher) // 设置下载的图片是否缓存在内存中 .cacheInMemory(true) // 设置下载的图片是否缓存在SD卡中 .cacheOnDisc(true) // 是否考虑JPEG图像EXIF参数(旋转,翻转) .considerExifParams(true) //圆角 //.displayer(new RoundedBitmapDisplayer(100)) // 设置图片以如何的编码方式显示 //.imageScaleType(ImageScaleType.EXACTLY_STRETCHED) // 设置图片的解码类型// //.bitmapConfig(Bitmap.Config.RGB_565) // 设置图片的解码配置 // .decodingOptions(options) // .delayBeforeLoading(int delayInMillis)//int // delayInMillis为你设置的下载前的延迟时间 // 设置图片加入缓存前,对bitmap进行设置 // .preProcessor(BitmapProcessor preProcessor) // 设置图片在下载前是否重置,复位 .resetViewBeforeLoading(true) .build(); return options; }
注意一下几点
/** * 新建一个MyApplication继承Application,并在onCreate()中创建ImageLoader的配置参数,并初始化到ImageLoader中代码如下 */public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); //创建默认的ImageLoader配置参数 ImageLoaderConfiguration imageLoader = ImageLoaderUilts.getImageLoader(this); ImageLoader.getInstance().init(imageLoader); } } 接着在配置Android Manifest文件配置 <manifest> <application android:name="MyApplication"> ... </application> </manifest> /** * 加载图片设置 */ DisplayImageOptions options = ImageLoaderUilts.getOptions(); ImageLoader.getInstance().displayImage(资源路径, 控件, 设置);轻松解决
阅读全文
0 0
- 古老的图片加载框架-----ImageLoader
- imageLoader加载图片的框架
- Imageloader图片加载框架
- 图片加载框架-ImageLoader
- ImageLoader 图片加载框架
- ImageLoader 图片加载框架
- ImageLoader图片加载框架
- 异步加载图片框架ImageLoader的使用
- 图片加载的框架 Imageloader Picasso Glide
- 设计自己的ImageLoader图片加载框架
- Android图片加载框架ImageLoader
- Android_图片加载框架---ImageLoader
- 图片的加载ImageLoader
- Android图片加载框架ImageLoader框架的坑
- 简单的图片加载框架——ImageLoader的实现
- 使用Volley框架的ImageLoader加载网络图片
- 使用Volley框架的ImageLoader加载网络图片
- 使用Volley框架的ImageLoader加载网络图片
- 一篇文章讲清楚人工智能、机器学习和深度学习的区别和联系
- 可自动换行的RadioGroup
- 健身教练教你跑步减肥的正确方法
- 渲染页面--跳转路由
- C# 方法
- 古老的图片加载框架-----ImageLoader
- Angular表单边框样式
- Angular4.0 动画
- 前端html与css学习笔记总结篇(超详细)
- 个人项目-一之(MVP+RxJava2+Retrofit2+RxBus+Glide)
- SylixOS之TFTP使用
- [vijos1426]兴奋剂检查(多维背包)
- MOSFET开时米勒平台的形成过程的详细解析!
- 2018届秋季校招Java面试题总结(一)