特點
多線程圖片加載
盡可能多的配置選項(線程池,加載器,解析器,內存/磁盤緩存,顯示參數等等)
圖片可以緩存在內存中,或者設備文件目錄下,或者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