ImageAware

ImageAware

需要顯示圖片的對(duì)象的接口日矫,可包裝 View 表示某個(gè)需要顯示圖片的 View
主要函數(shù):
(1). View getWrappedView()
得到被包裝的 View,圖片在該 View 上顯示账锹。
(2). getWidth() 與 getHeight()
得到寬度高度朵逝,在計(jì)算圖片縮放比例時(shí)會(huì)用到蔚袍。
(3). getId()
得到唯一標(biāo)識(shí) id。ImageLoaderEngine中用這個(gè) id 標(biāo)識(shí)正在加載圖片的ImageAware和圖片內(nèi)存緩存 key 的對(duì)應(yīng)關(guān)系配名,圖片請(qǐng)求前會(huì)將內(nèi)存緩存 key 與新的內(nèi)存緩存 key 進(jìn)行比較啤咽,如果不相等,則之前的圖片請(qǐng)求會(huì)被取消渠脉。這樣當(dāng)ImageAware被復(fù)用時(shí)就不會(huì)因異步加載(前面任務(wù)未取消)而造成錯(cuò)亂了宇整。

ViewAware

封裝 Android View 來(lái)顯示圖片的抽象類,實(shí)現(xiàn)了ImageAware接口芋膘,利用Reference來(lái) Warp View 防止內(nèi)存泄露鳞青。
主要函數(shù):
(1). ViewAware(View view, boolean checkActualViewSize)
構(gòu)造函數(shù)。
view表示需要顯示圖片的對(duì)象为朋。
checkActualViewSize表示通過(guò)getWidth()和getHeight()獲取圖片寬高時(shí)返回真實(shí)的寬和高臂拓,還是LayoutParams的寬高,true 表示返回真實(shí)寬和高习寸。
如果為true會(huì)導(dǎo)致一個(gè)問(wèn)題胶惰,View在還沒(méi)有初始化完成時(shí)加載圖片,這時(shí)它的真實(shí)寬高為 0融涣,會(huì)取它LayoutParams的寬高童番,而圖片緩存的 key 與這個(gè)寬高有關(guān),所以當(dāng)View初始化完成再次需要加載該圖片時(shí)威鹿,getWidth()和getHeight()返回的寬高都已經(jīng)變化剃斧,緩存 key 不一樣,從而導(dǎo)致緩存命中失敗會(huì)再次從網(wǎng)絡(luò)下載一次圖片忽你∮锥可通過(guò)ImageLoaderConfiguration.Builder.denyCacheImageMultipleSizesInMemory()設(shè)置不允許內(nèi)存緩存緩存一張圖片的多個(gè)尺寸。
(2). setImageDrawable(Drawable drawable)
如果當(dāng)前操作在主線程并且 View 沒(méi)有被回收科雳,則調(diào)用抽象函數(shù)setImageDrawableInto(Drawable drawable, View view)去向View設(shè)置圖片根蟹。
(3). setImageBitmap(Bitmap bitmap)
如果當(dāng)前操作在主線程并且 View 沒(méi)有被回收,則調(diào)用抽象函數(shù)setImageBitmapInto(Bitmap bitmap, View view)去向View設(shè)置圖片糟秘。

ImageViewAware

封裝 Android ImageView 來(lái)顯示圖片的ImageAware简逮,繼承了ViewAware,利用Reference來(lái) Warp View 防止內(nèi)存泄露尿赚。
如果getWidth()函數(shù)小于等于 0散庶,會(huì)利用反射獲取mMaxWidth的值作為寬蕉堰。
如果getHeight()函數(shù)小于等于 0,會(huì)利用反射獲取mMaxHeight的值作為高悲龟。

NonViewAware

僅包含處理圖片相關(guān)信息卻沒(méi)有需要顯示圖片的 View 的ImageAware屋讶,實(shí)現(xiàn)了ImageAware接口。常用于加載圖片后調(diào)用回調(diào)接口而不是顯示的情況须教。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末皿渗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子轻腺,更是在濱河造成了極大的恐慌乐疆,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件约计,死亡現(xiàn)場(chǎng)離奇詭異诀拭,居然都是意外死亡迁筛,警方通過(guò)查閱死者的電腦和手機(jī)煤蚌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)细卧,“玉大人尉桩,你說(shuō)我怎么就攤上這事√懊恚” “怎么了蜘犁?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)止邮。 經(jīng)常有香客問(wèn)我这橙,道長(zhǎng),這世上最難降的妖魔是什么导披? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任屈扎,我火速辦了婚禮,結(jié)果婚禮上撩匕,老公的妹妹穿的比我還像新娘鹰晨。我一直安慰自己,他們只是感情好止毕,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布模蜡。 她就那樣靜靜地躺著,像睡著了一般扁凛。 火紅的嫁衣襯著肌膚如雪忍疾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天谨朝,我揣著相機(jī)與錄音卤妒,去河邊找鬼丸边。 笑死,一個(gè)胖子當(dāng)著我的面吹牛荚孵,可吹牛的內(nèi)容都是我干的妹窖。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼收叶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼骄呼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起判没,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蜓萄,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后澄峰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嫉沽,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年俏竞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了长捧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡婆排,死狀恐怖荷科,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情席楚,我是刑警寧澤咬崔,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站烦秩,受9級(jí)特大地震影響垮斯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜只祠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一兜蠕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧铆农,春花似錦牺氨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至岭皂,卻和暖如春郊霎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背爷绘。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工书劝, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留进倍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓购对,卻偏偏與公主長(zhǎng)得像猾昆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子骡苞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 2021期待與你一起共事垂蜗,點(diǎn)擊查看崗位[http://www.reibang.com/p/6f4d67fa406...
    閑庭閱讀 16,641評(píng)論 0 75
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,325評(píng)論 25 707
  • 參考資料 目錄 Bitmap BitmapFactory Bitmap加載方法 Bitmap | Drawable...
    玄策閱讀 2,771評(píng)論 0 7
  • 1: 獲取控件寬高 控件View有g(shù)etHeight()和getwidth()方法可以獲取寬高,但是如果直接在on...
    自由人是工程師閱讀 1,796評(píng)論 0 0
  • 中秋佳節(jié)來(lái)臨之際解幽,學(xué)校舉行做親子燈籠活動(dòng)贴见,寶貝今天拿了二等獎(jiǎng)的獎(jiǎng)狀回來(lái),寶貝好開心的拿出來(lái)給我們看躲株,他說(shuō):爸爸媽媽...
    麗賢閱讀 170評(píng)論 0 0