Android編程開發中ImageLoader加載圖片

ImageLoader加載圖片,Android圖片異步加載開源框架android-Universal-Image-Loader是一個被廣泛應用的框架,Github上的下載路徑為:https://github.com/nostra13/Android-Universal-Image-Loader,用這個框架來幫助我們實現網絡圖片下載,不用擔心OOM等問題,使用方便,我們簡單講下其它初始化配置。

一般而言我們是要全局使用ImageLoader,所以我們可以選擇在Application中初始化設置該類。初始化ImageLoader要涉及到兩上類ImageLoaderConfiguration和DisplayImageOptions。其中ImageLoaderConfiguration是針對圖片緩存的全局配置,主要有線程類、緩存大小、磁盤大小、圖片下載與解析、日志方面的配置。DisplayImageOptions用於設置圖片顯示的類。

常用配置方法及參數如下:

———DisplayImageOptions設置————————————-
private DisplayImageOptions options;

options = new DisplayImageOptions.Builder()// 開始構建, 顯示的圖片的各種格式
.resetViewBeforeLoading(true)// 設置圖片在下載前是否重置,復位
.cacheInMemory(true)// 開啟內存緩存
.cacheOnDisk(true) // 開啟硬盤緩存
.displayer(new RoundedBitmapDisplayer(20))// 是否設置為圓角,弧度為多少;避免使用RoundedBitmapDisplayer.他會創建新的ARGB_8888格式的Bitmap對象;
.displayer(new FadeInBitmapDisplayer(100))// 是否圖片加載好後漸入的動畫時間
.displayer(new SimpleBitmapDisplayer())// 正常顯示一張圖片 
.bitmapConfig(Bitmap.Config.RGB_565)// 設置圖片的解碼類型;使用.bitmapConfig(Bitmap.config.RGB_565)代替ARGB_8888;
.considerExifParams(true)// 是否考慮JPEG圖像EXIF參數(旋轉,翻轉)
.imageScaleType(ImageScaleType.EXACTLY)// 縮放級別
.imageScaleType(ImageScaleType.IN_SAMPLE_INT)//這兩種配置縮放都推薦
.build();// 構建完成(參數可以不用設置全,根據需要來配置)

—————ImageLoaderConfiguration配置———————-

private static ImageLoaderConfiguration config;

config = new ImageLoaderConfiguration.Builder(context)// 開始構建 ,圖片加載配置
.threadPriority(Thread.NORM_PRIORITY – 2)// 設置線程優先級
.threadPoolSize(3)// 線程池內加載的數量 ;減少配置之中線程池的大小,(.threadPoolSize).推薦1-5;
.denyCacheImageMultipleSizesInMemory()// 設置加載的圖片有多樣的
.tasksProcessingOrder(QueueProcessingType.LIFO)// 圖片加載任務順序
.memoryCache(new WeakMemoryCache())//使用.memoryCache(new WeakMemoryCache()),不要使用.cacheInMemory();
.memoryCacheExtraOptions(480, 800) // 即保存的每個緩存文件的最大長寬
.memoryCacheSizePercentage(60)// 圖片內存占應用的60%;
.diskCacheFileNameGenerator(new HashCodeFileNameGenerator())//使用HASHCODE對UIL進行加密命名
.diskCacheFileNameGenerator(new Md5FileNameGenerator())// 將保存的時候的URI名稱用MD5 加密
.diskCacheSize(50 * 1024 * 1024) // 緩存設置大小為50 Mb
.diskCache(new UnlimitedDiskCache(cacheDir))// 自定義緩存路徑
.diskCacheFileCount(100) // 緩存的文件數量
.denyCacheImageMultipleSizesInMemory()// 自動縮放
.imageDownloader(new BaseImageDownloader(context, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超時時間
.memoryCacheExtraOptions(480, 800)//設置緩存圖片時候的寬高最大值,默認為屏幕寬高;保存的每個緩存文件的最大長寬
.defaultDisplayImageOptions(options)// 如果需要打開緩存機制,需要自己builde一個option,可以是DisplayImageOptions.createSimple()
.writeDebugLogs() // Remove for release app
.build();構建完成(參數可以不用設置全,根據需要來配置)

最後一句話:ImageLoader.getInstance().init(config);初始化完成

——————-如果我們要在一個ImageView上展示網址url圖片———————–

ImageLoader.getInstance().displayImage(url, imageView, options);就可以瞭

You May Also Like