Universal Image Loader for Android一些方法的引數
阿新 • • 發佈:2018-12-23
DisplayImageOptions options = new DisplayImageOptions.Builder()
// 設定圖片在下載期間顯示的圖片
.showImageOnLoading(R.drawable.ic_launcher)//
// 設定圖片Uri為空或是錯誤的時候顯示的圖片
.showImageForEmptyUri(R.drawable.ic_launcher)//
// 設定圖片載入/解碼過程中錯誤時候顯示的圖片
.showImageOnFail(R.drawable.ic_launcher)//
// 設定圖片在下載前是否重置,復位
.resetViewBeforeLoading()//
// 設定下載的圖片是否快取在記憶體中
.cacheInMemory(true)//
// 設定下載的圖片是否快取在SD卡中
.cacheOnDisc(true)//
.considerExifParams(true)//
// 設定圖片的解碼型別,預設值——Bitmap.Config.ARGB_8888
.bitmapConfig(Bitmap.Config.RGB_565)
/**
* 設定圖片的解碼配置 android.graphics.BitmapFactory.Options
* 注意:選擇inSampleSize將不考慮的選項
* 會根據imageScaleType(imageScaleType)選項設定大小
* 注意:這個選項重疊bitmapConfig()選項。
*/
//.decodingOptions(decodingOptions)
// 設定圖片下載前的延遲
//.delayBeforeLoading( delayInMillis)
// 設定額外的內容給ImageDownloader
// . extraForDownloader(Object extra)
/**
* 設定圖片加入快取前,對bitmap進行設定 BitmapProcessor preProcessor
* 設定點陣圖處理器將點陣圖過程之前,他們會在記憶體中快取。所以記憶體快取將包含點陣圖處理傳入的前處理器。*影象預處理的即使在記憶體中快取是禁用的。 */
.preProcessor(null) // 設定顯示前的圖片,顯示後這個圖片一直保留在快取中 // .postProcessor(BitmapProcessor postProcessor) /** * 設定圖片以如何的編碼方式顯示 imageScaleType(ImageScaleType imageScaleType) * EXACTLY :影象將完全按比例縮小的目標大小 * EXACTLY_STRETCHED:圖片會縮放到目標大小完全 IN_SAMPLE_INT:影象將被二次取樣的整數倍 * IN_SAMPLE_POWER_OF_2:圖片將降低2倍,直到下一減少步驟,使影象更小的目標大小 * NONE:圖片不會調整 */ // .imageScaleType( imageScaleType) /** * 設定圖片的顯示方式 預設值- * DefaultConfigurationFactory.createBitmapDisplayer() * * @param displayer * RoundedBitmapDisplayer(int roundPixels)設定圓角圖片 * FakeBitmapDisplayer()這個類什麼都沒做 * FadeInBitmapDisplayer(int durationMillis)設定圖片漸顯的時間 * SimpleBitmapDisplayer()正常顯示一張圖片 */ .displayer(new RoundedBitmapDisplayer(20))// .build(); ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder( context) /** * 你可以設定你自己實現的記憶體快取 */ .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) /** * 為點陣圖最大記憶體快取大小(以位元組為單位),預設值,可用應用程式記憶體的1/8 * 注意:如果你使用這個方法,那麼LruMemoryCache將被用作記憶體快取。 * 您可以使用memoryCache(MemoryCacheAware)方法來設定自己的MemoryCacheAware的實現。 */ .memoryCacheSize(2 * 1024 * 1024) /** * 當同一個Uri獲取不同大小的圖片,快取到記憶體時,只快取一個。預設會快取多個不同的大小的相同圖片 */ .denyCacheImageMultipleSizesInMemory() /** * 設定本地圖片快取 也可以設定你自己實現 盤快取必需實現 DiscCacheAware介面 * 型別(在com.nostra13.universalimageloader.cache.disc.impl包下能找到如下的類): * FileCountLimitedDiscCache(File cacheDir, int maxFileCount):設定快取路徑和快取檔案的數量,超過數量後,old將被刪除 * * FileCountLimitedDiscCache(File cacheDir,FileNameGenerator fileNameGenerator,int maxFileCount):第二個引數是通過圖片的url生成的唯一檔名。 * * LimitedAgeDiscCache(File cacheDir, FileNameGenerator fileNameGenerator, long maxAge) :第二個引數同上 * * LimitedAgeDiscCache(File cacheDir, long maxAge):maxAge為定義的時間,超過時間後,圖片將被刪除 * * TotalSizeLimitedDiscCache(File cacheDir, FileNameGenerator fileNameGenerator, int maxCacheSize) :第二個引數同上 * * TotalSizeLimitedDiscCache(File cacheDir, int maxCacheSize) :定義快取的大小,如超過了,就會刪除old圖片。 UnlimitedDiscCache(File cacheDir) :快取沒有限制 * * UnlimitedDiscCache(File cacheDir, FileNameGenerator fileNameGenerator):第二個引數同上 */ .discCache(new FileCountLimitedDiscCache(new File("/sdcard/cache"), 100))// /** * 設定快取的大小(以位元組為單位)預設:本地快取是不限制大小 * 注意:如果你使用這個方法,那麼TotalSizeLimitedDiscCache將被用作磁碟快取 * 您可以使用discCache(DiscCacheAware)DiscCacheAware引入自己的實現方法 * * @param maxCacheSize大小 */ .discCacheSize(10*1024*1024) /** * 設定圖片儲存到本地的引數 * @param maxImageWidthForDiscCache 儲存的最大寬度 * @param maxImageHeightForDiscCache 儲存的最大高度 * @param compressFormat 儲存的壓縮格式 * @param compressQuality 提示壓縮的程度,有0-100.想png這種圖片無損耗,就不必設定了 * @param BitmapProcessor 處理點陣圖,可以更改原來的點陣圖,實現必須是執行緒安全的。 */ .discCacheExtraOptions(100,10,android.graphics.Bitmap.CompressFormat.JPEG,0, null ) /** * 設定快取檔案的數量 * @param maxFileCount數量 */ .discCacheFileCount(100) /** * .taskExecutor(Executor executor) 添加個執行緒池,進行下載 * * @param executor * 執行緒池 * 如果進行了這個設定,那麼threadPoolSize(int),threadPriority( * int),tasksProcessingOrder(QueueProcessingType) * 將不會起作用 */ /** * 設定快取檔案的名字 * * @param fileNameGenerator * discCacheFileNameGenerator(FileNameGenerator * fileNameGenerator) 引數fileNameGenerator: * HashCodeFileNameGenerator * ():通過HashCode將url生成檔案的唯一名字 * Md5FileNameGenerator():通過Md5將url生產檔案的唯一名字 */ .discCacheFileNameGenerator(new Md5FileNameGenerator()) /** * 設定用於顯示圖片的執行緒池大小 * @param threadPoolSize */ .threadPoolSize(5)// /** * 設定執行緒的優先順序 * @param threadPriority */ .threadPriority(Thread.MIN_PRIORITY + 3) /** * tasksProcessingOrder(QueueProcessingType tasksProcessingType) * 設定圖片下載和顯示的工作佇列排序 * * @param tasksProcessingType */ .tasksProcessingOrder(QueueProcessingType.LIFO) /** * taskExecutorForCachedImages(Executor executorForCachedImages) * 下載快取圖片 * * @param executorForCachedImages */ // =========================================================// .writeDebugLogs() .build(); ImageLoader.getInstance().init(config);