? ? Universal-Image-Loader這個(gè)開源框架又來(lái)給我們?cè)旄A俗杩危且粋€(gè)圖片加載框架叫挟,主要強(qiáng)大在于可以用于網(wǎng)絡(luò)等圖片源的加載,并且有多重緩存機(jī)制
一限煞、簡(jiǎn)要說(shuō)明:
1.多線程下載圖片抹恳,圖片可以來(lái)源于網(wǎng)絡(luò),文件系統(tǒng)署驻,項(xiàng)目文件夾assets中以及drawable中等
2.支持隨意的配置ImageLoader奋献,例如線程池,圖片下載器旺上,內(nèi)存緩存策略瓶蚂,硬盤緩存策略,圖片顯示選項(xiàng)以及其他的一些配置
3.支持圖片的內(nèi)存緩存宣吱,文件系統(tǒng)緩存或者SD卡緩存
4.支持圖片下載過(guò)程的監(jiān)聽
5.根據(jù)控件(ImageView)的大小對(duì)Bitmap進(jìn)行裁剪窃这,減少Bitmap占用過(guò)多的內(nèi)存
6.較好的控制圖片的加載過(guò)程,例如暫停圖片加載征候,重新開始加載圖片杭攻,一般使用在ListView,GridView中,滑動(dòng)過(guò)程中暫停加載圖片疤坝,停止滑動(dòng)的時(shí)候去加載圖片
7.提供在較慢的網(wǎng)絡(luò)下對(duì)圖片進(jìn)行加載
/**
? ? * 比較常用的配置方案
? ? * @return
? ? */
? ? private ImageLoaderConfiguration getSimpleConfig() {
? ? ? ? //設(shè)置緩存的路徑
? ? ? ? File cacheDir = StorageUtils.getOwnCacheDirectory(getApplicationContext(), "imageloader/Cache");
? ? ? ? ImageLoaderConfiguration config = new ImageLoaderConfiguration
? ? ? ? ? ? .Builder(getApplicationContext())
? ? ? ? ? ? .memoryCacheExtraOptions(480, 800) //即保存的每個(gè)緩存文件的最大長(zhǎng)寬?
? ? ? ? ? ? .threadPriority(Thread.NORM_PRIORITY - 2) //線程池中線程的個(gè)數(shù)
? ? ? ? ? ? .denyCacheImageMultipleSizesInMemory() //禁止緩存多張圖片
? ? ? ? ? ? .memoryCache(new LRULimitedMemoryCache(40*1024*1024)) //緩存策略
? ? ? ? ? ? .memoryCacheSize(50 * 1024 * 1024) //設(shè)置內(nèi)存緩存的大小
? ? ? ? ? ? .diskCacheFileNameGenerator(new Md5FileNameGenerator()) //緩存文件名的保存方式
? ? ? ? ? ? .diskCacheSize(200 * 1024 * 1024) //磁盤緩存大小
? ? ? ? ? ? .tasksProcessingOrder(QueueProcessingType.LIFO) //工作隊(duì)列
? ? ? ? ? ? .diskCacheFileCount(200) //緩存的文件數(shù)量?
? ? ? ? ? ? .diskCache(new UnlimitedDiskCache(cacheDir)) //自定義緩存路徑?
? ? ? ? ? ? //.writeDebugLogs() // Remove for release app
? ? ? ? ? ? .build();
? ? ? ? return config;
? ? }