您的位置:首页 > 移动开发 > Android开发

图片异步加载框架 Android-Universal-Image-Loader

2014-01-22 10:56 639 查看

特点

多线程图片加载
尽可能多的配置选项(线程池,加载器,解析器,内存/磁盘缓存,显示参数等等)
图片可以缓存在内存中,或者设备文件目录下,或者SD卡中
可以监听加载进度
可以自定义显示每一张图片时都带不同参数
支持Widget

jar包下载

1.自定义XXXAppllication类,初始化ImageLoader

[java] view
plaincopy

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] view
plaincopy

android:name=".XXXApplication"

3.使用imageloader

[java] view
plaincopy

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] view
plaincopy

//设置图片在下载期间显示的图片

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] view
plaincopy

<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" />
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: