图片异步加载框架 Android-Universal-Image-Loader
2015-07-04 09:41
519 查看
特点
多线程图片加载
尽可能多的配置选项(线程池,加载器,解析器,内存/磁盘缓存,显示参数等等)
图片可以缓存在内存中,或者设备文件目录下,或者SD卡中
可以监听加载进度
可以自定义显示每一张图片时都带不同参数
支持Widget
jar包下载
1.自定义XXXAppllication类,初始化ImageLoader
[java]
public class XXXApplication extends Application {
@Override
public 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标签里加入
[java]
android:name=".XXXApplication"
3.使用imageloader
[java]
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.部分参数介绍
[java]
//设置图片在下载期间显示的图片
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简单示例
*/
// 创建默认的DisplayImageOptions
DisplayImageOptions option_0=DisplayImageOptions.createSimple();
// 使用DisplayImageOptions.Builder()创建DisplayImageOptions
DisplayImageOptions 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.最后别忘了权限
[java]
<uses-permission android:name="andro
多线程图片加载
尽可能多的配置选项(线程池,加载器,解析器,内存/磁盘缓存,显示参数等等)
图片可以缓存在内存中,或者设备文件目录下,或者SD卡中
可以监听加载进度
可以自定义显示每一张图片时都带不同参数
支持Widget
jar包下载
1.自定义XXXAppllication类,初始化ImageLoader
[java]
public class XXXApplication extends Application {
@Override
public 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标签里加入
[java]
android:name=".XXXApplication"
3.使用imageloader
[java]
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.部分参数介绍
[java]
//设置图片在下载期间显示的图片
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简单示例
*/
// 创建默认的DisplayImageOptions
DisplayImageOptions option_0=DisplayImageOptions.createSimple();
// 使用DisplayImageOptions.Builder()创建DisplayImageOptions
DisplayImageOptions 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.最后别忘了权限
[java]
<uses-permission android:name="andro
相关文章推荐
- java.lang.ClassNotFoundException: android.view.LinearLaout
- Android webView 缓存 Cache + HTML5离线功能 解决
- Android自定义搜索框(EditText)的搜索功能实现,过滤ListView
- Asynctask解析以及注意事项
- Android获取短信验证码的实现方法
- Android中 dp,px,dpi三者之间的关系
- Android蓝牙开发的一点总结
- Android进阶学习总结-自定义ViewGroup和属性
- 【Android基础篇】Activity的生命周期
- android 获取屏幕分辨率
- Android 知识图谱
- android studio在windows上设置git/ssh
- 安卓android视频录制、另一部手机实时观看方案
- 安卓android视频录制、另一部手机实时观看方案
- Android实践-使用ViewPager和Fragment实现带Tab导航条的仿新闻类页面
- Android 布局之RelativeLayout
- Android学习长按列表项弹出菜单 给菜单项添加事件 获取上下文
- Android Resource介绍和使用
- Android Dalvik虚拟机初识
- Android 应用添加菜单