1. 程式人生 > >Android 圖片相關處理庫ImageLoader、Picasso、PhotoView、GifView

Android 圖片相關處理庫ImageLoader、Picasso、PhotoView、GifView

 1 package com.zhang.imageloaderdemo;
 2 
 3 import android.app.Application;
 4 import android.graphics.Bitmap;
 5 import android.os.Environment;
 6 
 7 import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
 8 import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
9 import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache; 10 import com.nostra13.universalimageloader.core.DisplayImageOptions; 11 import com.nostra13.universalimageloader.core.ImageLoader; 12 import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; 13 import com.nostra13.universalimageloader.core.assist.ImageScaleType;
14 import com.nostra13.universalimageloader.core.assist.QueueProcessingType; 15 import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; 16 import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer; 17 import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
18 import com.nostra13.universalimageloader.core.download.ImageDownloader; 19 20 import java.io.File; 21 import java.io.IOException; 22 import java.io.InputStream; 23 24 /** 25 * Created by Mr.Z on 2016/9/25 0025. 26 */ 27 public class MyApplication extends Application { 28 29 @Override 30 public void onCreate() { 31 super.onCreate(); 32 33 ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this) 34 .memoryCacheExtraOptions(480, 800)//max width, max height,即儲存的每個快取檔案的最大長寬 35 .discCacheExtraOptions(480, 800, null)//設定快取的詳細資訊,最好不要設定這個 36 .threadPoolSize(3)//執行緒池內載入的數量 37 .threadPriority(Thread.NORM_PRIORITY - 2) 38 .denyCacheImageMultipleSizesInMemory() 39 .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024))//你可以通過自己的記憶體快取實現 40 .memoryCacheSize(2 * 1024 * 1024) 41 .diskCacheSize(50 * 1024 * 1024) 42 .discCacheFileNameGenerator(new Md5FileNameGenerator())//將儲存的時候的URI名稱用MD5 加密 43 .tasksProcessingOrder(QueueProcessingType.FIFO) 44 .discCacheFileCount(100)//快取的檔案數量 45 .discCache(new UnlimitedDiscCache(new File(Environment.getExternalStorageDirectory() + "/imageLoader/imgCache")))//自定義快取路徑 46 .defaultDisplayImageOptions(getDisplayOptions()) 47 .imageDownloader(new BaseImageDownloader(this, 5 * 1000, 30 * 1000)) 48 .writeDebugLogs() 49 .build();//開始構建 50 51 ImageLoader.getInstance().init(configuration); 52 53 } 54 55 private DisplayImageOptions getDisplayOptions() { 56 57 DisplayImageOptions options; 58 options = new DisplayImageOptions.Builder() 59 .showImageOnLoading(R.mipmap.ic_launcher)//設定圖片在下載期間顯示的圖片 60 .showImageForEmptyUri(R.mipmap.ic_launcher)//設定圖片Uri為空或是錯誤的時候顯示的圖片 61 .showImageOnFail(R.mipmap.ic_launcher)//設定圖片載入/解碼過程中錯誤時候顯示的圖片 62 .cacheInMemory(true)//設定下載的圖片是否快取在記憶體中 63 .cacheOnDisk(true)//設定下載的圖片是否快取在SD卡中 64 .considerExifParams(true)//是否考慮JPEG影象EXIF引數(旋轉,翻轉) 65 .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)//設定圖片以如何的編碼方式顯示 66 .bitmapConfig(Bitmap.Config.RGB_565)//設定圖片的解碼型別 67 // .delayBeforeLoading(int delayInMillis)//設定的下載前的延遲時間 68 // .preProcessor(BitmapProcessor preProcessor)//設定圖片加入快取前,對bitmap進行設定 69 .resetViewBeforeLoading(true)//設定圖片在下載前是否重置,復位 70 .displayer(new RoundedBitmapDisplayer(20))//是否設定為圓角,弧度為多少 71 .displayer(new FadeInBitmapDisplayer(100))//是否圖片載入好後漸入的動畫時間 72 .build(); 73 74 return options; 75 } 76 77 78 }