Android开源框架Universal-Image-Loader
来源:互联网 发布:php 抽奖系统 设计 编辑:程序博客网 时间:2024/04/29 14:02
先看效果
框架特点
- 多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等
- 支持随意的配置ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置
- 支持图片的内存缓存,文件系统缓存或者SD卡缓存
- 支持图片下载过程的监听
- 根据控件(ImageView)的大小对Bitmap进行裁剪,减少Bitmap占用过多的内存
- 较好的控制图片的加载过程,例如暂停图片加载,重新开始加载图片,一般使用在ListView,GridView中,滑动过程中暂停加载图片,停止滑动的时候去加载图片
- 提供在较慢的网络下对图片进行加载
1.自定义XXXAppllication类,初始化ImageLoader
public class XXXApplication extends Application {@Overridepublic void onCreate() {super.onCreate(); ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext()) .denyCacheImageMultipleSizesInMemory() .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) .memoryCacheSize(2 * 1024 * 1024) .discCacheSize(50 * 1024 * 1024) .denyCacheImageMultipleSizesInMemory() .discCacheFileNameGenerator(new Md5FileNameGenerator()) .tasksProcessingOrder(QueueProcessingType.LIFO) .discCacheFileCount(100) .writeDebugLogs() .build(); ImageLoader.getInstance().init(config);}}
2.在AndroidManifest.xml文件的application标签里加入
android:name=".XXXApplication"
3.使用imageloader
public class ImageManager{ public static void Load(String imgUrl,ImageView imageView){ImageLoader.getInstance().displayImage(imgUrl, imageView); } public static void Load(String imgUrl,ImageView imageView,DisplayImageOptions o){ ImageLoader.getInstance().displayImage(imgUrl, imageView,o); }}
4.部分参数介绍(DisplayImageOptions)
//设置图片在下载期间显示的图片 showStubImage(R.drawable.ic_launcher) //设置图片Uri为空或是错误的时候显示的图片 showImageForEmptyUri(R.drawable.ic_empty) //设置图片加载/解码过程中错误时候显示的图片 showImageOnFail(R.drawable.ic_error) //设置图片在下载前是否重置,复位 resetViewBeforeLoading() //设置下载的图片是否缓存在内存中 cacheInMemory() //设置下载的图片是否缓存在SD卡中 cacheOnDisc() //设置图片的解码类型 bitmapConfig(Bitmap.Config.RGB_565) //设置图片的解码配置 decodingOptions(android.graphics.BitmapFactory.Options decodingOptions) //设置图片下载前的延迟 delayBeforeLoading(int delayInMillis) //设置额外的内容给ImageDownloader extraForDownloader(Object extra) //设置图片加入缓存前,对bitmap进行设置 preProcessor(BitmapProcessor preProcessor) //设置显示前的图片,显示后这个图片一直保留在缓存中 postProcessor(BitmapProcessor postProcessor) //设置图片以如何的编码方式显示 imageScaleType(ImageScaleType imageScaleType)/** * 设置图片的显示方式 * @param displayer */displayer(BitmapDisplayer displayer)displayer: RoundedBitmapDisplayer(int roundPixels)设置圆角图片 FakeBitmapDisplayer()这个类什么都没做 FadeInBitmapDisplayer(int durationMillis)设置图片渐显的时间 SimpleBitmapDisplayer()正常显示一张图片 /** * 图片的缩放方式 * @param imageScaleType */ imageScaleType(ImageScaleType imageScaleType) imageScaleType: EXACTLY :图像将完全按比例缩小的目标大小 EXACTLY_STRETCHED:图片会缩放到目标大小完全 IN_SAMPLE_INT:图像将被二次采样的整数倍 IN_SAMPLE_POWER_OF_2:图片将降低2倍,直到下一减少步骤,使图像更小的目标大小 NONE:图片不会调整/***DisplayImageOptions简单示例*/// 创建默认的DisplayImageOptionsDisplayImageOptions option_0=DisplayImageOptions.createSimple();// 使用DisplayImageOptions.Builder()创建DisplayImageOptionsDisplayImageOptions options = new DisplayImageOptions.Builder() .imageScaleType(ImageScaleType.EXACTLY_STRETCHED).showStubImage(R.drawable.loading) .showImageForEmptyUri(R.drawable.load_fail) .showImageOnFail(R.drawable.load_fail) .cacheInMemory(true) .cacheOnDisc(true) .build();
5.最后别忘了权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
源码下载
0 0
- Android开源框架Universal-Image-Loader
- 开源框架Android-Universal-Image-Loader
- Android 开源框架Universal-Image-Loader
- Android开源框架Universal-Image-Loader
- Android 开源框架Universal-Image-Loader
- Android开源框架 universal-Image-Loader
- Android开源框架之Android-Universal-Image-Loader
- Android异步加载图片开源框架Universal-Image-Loader
- Android 开源框架Universal-Image-Loader完全解析
- Android 开源框架Universal-Image-Loader完全解析
- Android开源框架Universal-Image-Loader详解
- Android 开源框架Universal-Image-Loader完全解析
- Android 开源框架Universal-Image-Loader的使用
- Android 开源框架Universal-Image-Loader实例分析
- Android开源框架Universal-Image-Loader详解
- Android 开源框架Universal-Image-Loader完全解析
- Android 开源框架Universal-Image-Loader完全解析
- Android开源框架Universal-Image-Loader详解
- 恐龙纪录片 - 为孩子
- IOS逆向
- 惠普Color LaserJet CP2025打印机 - 质量在一个盒子
- leveldb -- 1
- Floyd(自用)
- Android开源框架Universal-Image-Loader
- Myeclipse8.5中svn插件安装方法
- InternetExplorer.Application对象的Documen属性及简单应用
- 17.0~17.9 通知,系统通知,推送消息
- 122_leetcode_wordBreak
- git clone 远程分支
- Windows进程间通信
- 变量定义,初始化,声明
- 混合欧拉回路的判断(Dinic)