學習Universal-Image-Loader類庫

demo在附件
寫道
來自互聯網資料:
Android-Universal-Image-Loader是一個開源的UI組件程序,該項目的目的是提供一個可重複使用的儀器爲異步圖像加 載,緩存和顯示。
特點
多線程的圖像加載的可能性的寬調諧對ImageLoader的配置(線程池的大小,HTTP選項,內存和光盤高速緩存,顯示圖像,以及其他)
的圖像的可能性中的緩存存儲器和/或設備的文件器系統(或SD卡)可以監聽加載過程中
可自定義每個顯示的圖像調用分隔的選項
Widget支持
Android 2.0上支持

使用方法
緩存不是默認啓用
1、DisplayImageOptions的配置
DisplayImageOptions imageOptions = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_launcher)// 加載時顯示的默認圖片
.showImageForEmptyUri(R.drawable.ic_empty)// 加載url=null時顯示的默認圖片
.showImageOnFail(R.drawable.ic_error) // 加載出錯時顯示錯誤的默認圖片
.cacheInMemory(true)//開啓內存緩存
.cacheOnDisc(true) //開啓硬盤緩存
.bitmapConfig(Bitmap.Config.RGB_565) //圖片色值配置
.build();

2、ImageLoaderConfiguration的配置

// 自定義緩存路徑
File cacheDir = StorageUtils.getOwnCacheDirectory(getApplicationContext(), mCache);
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
.memoryCacheExtraOptions(480, 800) // default = device screen dimensions
.discCacheExtraOptions(480, 800, CompressFormat.JPEG, 85, null)
.taskExecutor(AsyncTask.THREAD_POOL_EXECUTOR)//3.0才支持
.taskExecutorForCachedImages(AsyncTask.THREAD_POOL_EXECUTOR)//3.0才支持
.threadPoolSize(Thread.NORM_PRIORITY)// default 3
.threadPriority(Thread.NORM_PRIORITY - 1)// default 線程優先級別
.tasksProcessingOrder(QueueProcessingType.FIFO)// default
.denyCacheImageMultipleSizesInMemory()
.memoryCache(new LruMemoryCache(2 * 1024 * 1024)) // 2M
.memoryCacheSize(2 * 1024 * 1024)// 2M
// .discCache(new UnlimitedDiscCache(cacheDir)) // default UnlimitedDiscCache ,HashCodeFileNameGenerator
.discCache(new UnlimitedDiscCache(cacheDir,new Md5FileNameGenerator())) // default UnlimitedDiscCache
.discCacheSize(50 * 1024 * 1024) // 本地緩存大小50M
.discCacheFileCount(100) // 文件數量
// .discCacheFileNameGenerator(new HashCodeFileNameGenerator())// default
// .discCacheFileNameGenerator(new Md5FileNameGenerator()) // 文件命名器
.imageDownloader(new BaseImageDownloader(getApplicationContext())) // default
.imageDecoder(new BaseImageDecoder(true)) // default
.defaultDisplayImageOptions(imageOptions) // default DisplayImageOptions.createSimple()
.writeDebugLogs()
.build();


ImageLoader mImageLoader = ImageLoader.getInstance();
mImageLoader.init(config);


3、部分參數解釋:
//設置圖片在下載期間顯示的圖片
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:圖片不會調整

4、權限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章