真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

優(yōu)秀的開源框架學(xué)習(xí)-創(chuàng)新互聯(lián)

ButterKnife基本使用 http://www.cnblogs.com/mengdd/archive/2015/06/23/4595973.html

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請(qǐng)、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、容縣網(wǎng)站維護(hù)、網(wǎng)站推廣。

Android SlidingMenu 使用詳解

http://blog.csdn.net/lmj623565791/article/details/36677279

ImageLoader的源碼分析:

這個(gè)庫封裝的層次實(shí)在是太多了?。?!可以借鑒作者是怎么封裝類的!??!

DisplayImageOptions  Builder   配置一些參數(shù)

ImageLoaderEngine       引擎類

ProcessAndDisplayImageTask

ImageLoadingInfo        存儲(chǔ)一些下載相關(guān)的信息

。。。

從ImageLoader.getInstance().displayImage這個(gè)方法追溯,這個(gè)方法可以選傳url,p_w_picpath,也可以傳

入?yún)?shù)和進(jìn)度監(jiān)聽者。

1)ImageLoader的實(shí)例化采用單例設(shè)計(jì)模式

2)ImageLoader的初始化init方法會(huì)初始化引擎ImageLoaderEngine,并傳入DisplayImageOptions參數(shù)

 》ImageLoaderEngine封裝了一些線程池的操作

 》這個(gè)類里還用到FlushedInputStream這個(gè)類,F(xiàn)lushedInputStream會(huì)避免個(gè)別的錯(cuò)誤Issue 6066: BitmapFactory.decodeStream() fails if InputStream.skip() does not skip fully

 》類中用同步Map來存儲(chǔ)ImageView的緩存key值。

 》submit會(huì)將任務(wù)提交到線程池

3)判斷uri為不為null,為null會(huì)將參數(shù)DisplayImageOptions中的默認(rèn)圖片設(shè)置給ImageView。

 同時(shí)會(huì)回調(diào)監(jiān)聽者的一些方法

 從參數(shù)DisplayImageOptions中得到大的圖片尺寸

 根據(jù)url和圖片的大尺寸來生成緩存的key

 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 大致的思路:

 》在Application里init

  初始化參數(shù)DisplayImageOptions并傳遞給ImageLoaderEngine類。

  ImageLoaderEngine主要是維護(hù)了一些線程池,對(duì)Runnable任務(wù)進(jìn)行管理。

  任務(wù)主要是通過Handler來實(shí)現(xiàn)線程間的通訊。

 》在display里解析DisplayImageOptions封裝的參數(shù)信息

 》判斷對(duì)url==null作處理

 》獲取key

 String memoryCacheKey = MemoryCacheUtils.generateKey(uri, targetSize);

 ++DisplayImageOptions.Builder在初始化build()的時(shí)候,如果用戶沒有設(shè)置某些參數(shù),它會(huì)自動(dòng)

 進(jìn)行一些默認(rèn)設(shè)置,通過DefaultConfigurationFactory這個(gè)類。

public ImageLoaderConfiguration build() {
			initEmptyFieldsWithDefaultValues();
			return new ImageLoaderConfiguration(this);
}

 ++initEmptyFieldsWithDefaultValues方法進(jìn)行的一些主要的初始化操作:

 如diskCache、memoryCache、downloader等,很好地體現(xiàn)了面向?qū)ο蟮木幊趟枷搿?/p>

private void initEmptyFieldsWithDefaultValues() {
			if (taskExecutor == null) {
				taskExecutor = DefaultConfigurationFactory
						.createExecutor(threadPoolSize, threadPriority, tasksProcessingType);
			} else {
				customExecutor = true;
			}
			if (taskExecutorForCachedImages == null) {
				taskExecutorForCachedImages = DefaultConfigurationFactory
						.createExecutor(threadPoolSize, threadPriority, tasksProcessingType);
			} else {
				customExecutorForCachedImages = true;
			}
			if (diskCache == null) {
				if (diskCacheFileNameGenerator == null) {
					diskCacheFileNameGenerator = DefaultConfigurationFactory.createFileNameGenerator();
				}
				diskCache = DefaultConfigurationFactory
						.createDiskCache(context, diskCacheFileNameGenerator, diskCacheSize, diskCacheFileCount);
			}
			if (memoryCache == null) {
				memoryCache = DefaultConfigurationFactory.createMemoryCache(context, memoryCacheSize);
			}
			if (denyCacheImageMultipleSizesInMemory) {
				memoryCache = new FuzzyKeyMemoryCache(memoryCache, MemoryCacheUtils.createFuzzyKeyComparator());
			}
			if (downloader == null) {
				downloader = DefaultConfigurationFactory.createImageDownloader(context);
			}
			if (decoder == null) {
				decoder = DefaultConfigurationFactory.createImageDecoder(writeLogs);
			}
			if (defaultDisplayImageOptions == null) {
				defaultDisplayImageOptions = DisplayImageOptions.createSimple();
			}
		}
	}

 》根據(jù)key從緩存中獲取Bitmap

 Bitmap bmp = configuration.memoryCache.get(memoryCacheKey);

 判斷緩存中有沒有得到Bitmap

 LoadAndDisplayImageTask,從網(wǎng)絡(luò)上下載圖片位于tryLoadBitmap()這個(gè)方法當(dāng)中

 通過BaseImageDecoder這個(gè)類的decode方法下載網(wǎng)絡(luò)圖片,通過BaseImageDownloader獲得輸入流,

 網(wǎng)絡(luò)請(qǐng)求采用的是HttpURLConnection。

Freco圖片加載框架:

1.緩存

在5.0以下系統(tǒng),Bitmap緩存位于ashmem,這樣Bitmap對(duì)象的創(chuàng)建和釋放將不會(huì)引發(fā)GC,更少的GC會(huì)使你的APP運(yùn)行得更加流暢。

5.0及其以上系統(tǒng),相比之下,內(nèi)存管理有了很大改進(jìn),所以Bitmap緩存直接位于Java的heap上。

當(dāng)應(yīng)用在后臺(tái)運(yùn)行是,該內(nèi)存會(huì)被清空。

2.漸進(jìn)式JPEG圖

Fresco 支持漸進(jìn)式的網(wǎng)絡(luò)JPEG圖。在開始加載之后,圖會(huì)從模糊到清晰漸漸呈現(xiàn)。

你可以設(shè)置一個(gè)清晰度標(biāo)準(zhǔn),在未達(dá)到這個(gè)清晰度之前,會(huì)一直顯示占位圖。

漸進(jìn)式JPEG圖僅僅支持網(wǎng)絡(luò)圖。

3.漸進(jìn)式JPEG圖

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


網(wǎng)站題目:優(yōu)秀的開源框架學(xué)習(xí)-創(chuàng)新互聯(lián)
瀏覽地址:http://weahome.cn/article/ddeegd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部