1. 程式人生 > >Android-Universal-Image-Loader 屬性設定

Android-Universal-Image-Loader 屬性設定

設定Android-Universal-Image-Loader快取圖片的目錄

其預設的快取目錄是mnt/sdcard/Android/data/your project/下,因為沒有提供介面,所以想修改只能改其原始碼。

1.到https://github.com/nostra13/Android-Universal-Image-Loader把原始碼拿下來
2.匯入library專案,修改com.nostra13.universalimageloader.utils.StorageUtils這個類,getExternalCacheDir(Context context)這個方法返回的就是快取圖片目錄,getCacheDirectory(Context context)是真正返回快取目錄的方法,

該怎麼做就不說了,相信都明白
3.重新打成jar包使用或直接將程式碼拷到你的專案

      1.此類的功能:

複製程式碼
 1     //設定圖片在下載期間顯示的圖片
 2     showStubImage(R.drawable.ic_launcher)
 3     
 4     //設定圖片Uri為空或是錯誤的時候顯示的圖片
 5     showImageForEmptyUri(R.drawable.ic_empty)
 6     
 7     //設定圖片載入/解碼過程中錯誤時候顯示的圖片
 8     showImageOnFail(R.drawable.ic_error)
 9     
10     //
設定圖片在下載前是否重置,復位 11 resetViewBeforeLoading() 12 13 //設定下載的圖片是否快取在記憶體中 14 cacheInMemory() 15 16 //設定下載的圖片是否快取在SD卡中 17 cacheOnDisc() 18 19 //設定圖片的解碼型別 20 bitmapConfig(Bitmap.Config.RGB_565) 21 22 //設定圖片的解碼配置 23 decodingOptions(android.graphics.BitmapFactory.Options decodingOptions)
24 25 //設定圖片下載前的延遲 26 delayBeforeLoading(int delayInMillis) 27 28 //設定額外的內容給ImageDownloader 29 extraForDownloader(Object extra) 30 31 //設定圖片加入快取前,對bitmap進行設定 32 preProcessor(BitmapProcessor preProcessor) 33 34 //設定顯示前的圖片,顯示後這個圖片一直保留在快取中 35 postProcessor(BitmapProcessor postProcessor) 36 37 //設定圖片以如何的編碼方式顯示 38 imageScaleType(ImageScaleType imageScaleType)
複製程式碼

       2.此類的兩種建立方式:

複製程式碼
        /**
         * DisplayImageOptions 建立的兩種方式。
         */
        // 建立預設的DisplayImageOptions
        DisplayImageOptions option_0 = DisplayImageOptions.createSimple();

        // 使用DisplayImageOptions.Builder()建立DisplayImageOptions
        DisplayImageOptions option_1 = new DisplayImageOptions.Builder()
                .showStubImage(R.drawable.ic_launcher)
                .showImageOnFail(R.drawable.ic_error)
                .showImageForEmptyUri(R.drawable.ic_empty).cacheInMemory()
                .cacheOnDisc().displayer(new RoundedBitmapDisplayer(20))
                .build();
複製程式碼

      3.類中的方法使用:

複製程式碼
     /**
     * 設定圖片的顯示方式
     * @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:圖片不會調整
複製程式碼