天天看點

ImageLoader中相關配置詳解

ImageLoaderConfiguration是針對圖檔緩存的全局配置,主要有線程類、緩存大小、磁盤大小、圖檔下載下傳與解析、日志方面的配置。

ImageLoaderConfiguration config =

new

ImageLoaderConfiguration.Builder(getApplicationContext())

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

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

DisplayImageOptions 用于指導每一個Imageloader根據網絡圖檔的狀态(空白、下載下傳錯誤、正在下載下傳)顯示對應的圖檔,是否将緩存加載到磁盤上,下載下傳完後對圖檔進行怎麼樣的處理。

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

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

繼續閱讀