天天看點

universal-image-loader圖檔異步加載

編輯新增:

目前Android使用最為廣泛,效果也極佳的圖檔處理加載器。

用法就不用說了,百度一下一大堆。

将具體的配置做詳細說明保留日後使用。

                // 記憶體緩存的設定選項 (最大圖檔寬度,最大圖檔高度) 預設目前螢幕分辨率

                // .memoryCacheExtraOptions(480, 800)

                // 硬碟緩存的設定選項 (最大圖檔寬度,最大圖檔高度,壓縮格式,壓縮品質,處理器)

                // .discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75, null)

                // 設定自定義加載和顯示圖檔的線程池

                // .taskExecutor(DefaultConfigurationFactory.createExecutor(3,Thread.NORM_PRIORITY

                // - 1, QueueProcessingType.FIFO))

                // 設定自定義加載和顯示記憶體緩存或者硬碟緩存圖檔的線程池

                // .taskExecutorForCachedImages(DefaultConfigurationFactory.createExecutor(3,Thread.NORM_PRIORITY

                // - 1, QueueProcessingType.FIFO))

                // 設定顯示圖檔線程池大小,預設為3

                // 注:如果設定了taskExecutor或者taskExecutorForCachedImages 此設定無效

                // .threadPoolSize(3)

                // 設定圖檔加載線程的優先級,預設為Thread.NORM_PRIORITY-1

                // 注:如果設定了taskExecutor或者taskExecutorForCachedImages 此設定無效

                // .threadPriority(Thread.NORM_PRIORITY - 1)

                // 設定圖檔加載和顯示隊列處理的類型 預設為QueueProcessingType.FIFO

                // 注:如果設定了taskExecutor或者taskExecutorForCachedImages 此設定無效

                // .tasksProcessingOrder(QueueProcessingType.FIFO)

                // 設定拒絕緩存在記憶體中一個圖檔多個大小 預設為允許,(同一個圖檔URL)根據不同大小的imageview儲存不同大小圖檔

                // .denyCacheImageMultipleSizesInMemory()

                // 設定記憶體緩存 預設為一個目前應用可用記憶體的1/8大小的LruMemoryCache

                // .memoryCache(new LruMemoryCache(2 * 1024 * 1024))

                // 設定記憶體緩存的最大大小 預設為一個目前應用可用記憶體的1/8

                // .memoryCacheSize(2 * 1024 * 1024)

                // 設定記憶體緩存最大大小占目前應用可用記憶體的百分比 預設為一個目前應用可用記憶體的1/8

                // .memoryCacheSizePercentage(13)

                // 設定硬碟緩存

                // 預設為StorageUtils.getCacheDirectory(getApplicationContext())

                // 即/mnt/sdcard/android/data/包名/cache/

                // .discCache(new

                // UnlimitedDiscCache(StorageUtils.getCacheDirectory(getApplicationContext())))

                // 設定硬碟緩存的最大大小

                // .discCacheSize(50 * 1024 * 1024)

                // 設定硬碟緩存的檔案的最多個數

                // .discCacheFileCount(100)

                // 設定硬碟緩存檔案名生成規範

                // 預設為new HashCodeFileNameGenerator()

                // .discCacheFileNameGenerator(new Md5FileNameGenerator())

                // 設定圖檔下載下傳器

                // 預設為 DefaultConfigurationFactory.createBitmapDisplayer()

                // .imageDownloader(

                // new HttpClientImageDownloader(getApplicationContext(),

                // new DefaultHttpClient()))

                // 設定圖檔解碼器

                // 預設為DefaultConfigurationFactory.createImageDecoder(false)

                // .imageDecoder(DefaultConfigurationFactory.createImageDecoder(false))

                // 設定預設的圖檔顯示選項

                // 預設為DisplayImageOptions.createSimple()

                // .defaultDisplayImageOptions(DisplayImageOptions.createSimple())

                // 列印DebugLogs

                // .writeDebugLogs()

                // 建立

                // .build();

  // 設定圖檔加載時的預設圖檔

  // .showImageOnLoading(R.drawable.ic_chat_def_pic)

  // 設定圖檔加載失敗的預設圖檔

  // .showImageOnFail(R.drawable.ic_chat_def_pic_failure)

  // 設定圖檔URI為空時預設圖檔

  // .showImageForEmptyUri(R.drawable.ic_chat_def_pic)

  // 設定是否将View在加載前複位

  // .resetViewBeforeLoading(false)

  // 設定延遲部分時間才開始加載

  // 預設為0

  // .delayBeforeLoading(100)

  // 設定添加到記憶體緩存

  // 預設為false

  // .cacheInMemory(true)

  // 設定添加到硬碟緩存

  // 預設為false

  // .cacheOnDisc(true)

  // 設定規模類型的解碼圖像

  // 預設為ImageScaleType.IN_SAMPLE_POWER_OF_2

  // .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2)

  // 設定位圖圖像解碼配置

  // 預設為Bitmap.Config.ARGB_8888

  // .bitmapConfig(Bitmap.Config.ARGB_8888)

  // 設定選項的圖像解碼

  // .decodingOptions(new Options())

  // 設定自定義顯示器

  // 預設為DefaultConfigurationFactory.createBitmapDisplayer()

  // .displayer(new FadeInBitmapDisplayer(300))

  // 設定自定義的handler

  // 預設為new Handler()

  // .handler(new Handler())

  // 建立

  // .build();

繼續閱讀