1. 程式人生 > >Universal Image Loader for Android一些方法的引數

Universal Image Loader for Android一些方法的引數

		
		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);