Bitmap加載官方training

這兩天看了一下官方關(guān)于圖片加載的東西,記錄一下

大圖加載

有時(shí)候圖片加載沒必要加載原圖那么大的解析度吭露,就像系統(tǒng)相冊(cè)展示照片時(shí)耀找,系統(tǒng)照相機(jī)拍出來的照片解析度遠(yuǎn)遠(yuǎn)高于屏幕能夠解析的閾值怜械,就像拿一張4k的圖片到1080p的顯示屏上展示灾而,最大只能到1080p饭寺。所以原圖加載:



所以展示圖片的大小根據(jù)UI組件來確定阻课。很多時(shí)候就需要加載一張小一點(diǎn)的圖片了。

讀取Bitmap的大小和類型【具體代碼后面會(huì)有】

BitmapFactory提供了解析多種源的方法艰匙,如名字說明的一樣[decodeByteArray()](https://developer.android.com/reference/android/graphics/BitmapFactory.html#decodeByteArray(byte[], int, int, android.graphics.BitmapFactory.Options)), [decodeFile()](https://developer.android.com/reference/android/graphics/BitmapFactory.html#decodeFile(java.lang.String, android.graphics.BitmapFactory.Options)), [decodeResource()](https://developer.android.com/reference/android/graphics/BitmapFactory.html#decodeResource(android.content.res.Resources, int, android.graphics.BitmapFactory.Options))限煞。這個(gè)方法會(huì)為圖片分配內(nèi)存,但是有個(gè)BitmapFactory.Options员凝,可以為解析設(shè)置一些可變屬性署驻。 inJustDecodeBounds這個(gè)方法設(shè)置為true后,就不會(huì)分配內(nèi)存健霹,僅僅解析一些圖片的基本屬性旺上。然后上面那個(gè)三個(gè)解析的屬性會(huì)返回Null,以下加載的是一張19201080,24bit color,404.94k*的圖片骤公,機(jī)型為紅米2A抚官,原圖加載一張圖片就占用了這么多內(nèi)存,

Paste_Image.png
內(nèi)存占用

加載縮略過的圖片

這里要設(shè)置inSampleSize為ture,阶捆,我的理解這個(gè)就是縮小比例凌节,下面是計(jì)算方法钦听,

Paste_Image.png

下圖是調(diào)用上面那個(gè)方法來獲取inSampleSize
Paste_Image.png

下圖是上圖打印的值,原來的大小和實(shí)際加載到內(nèi)存中的大小(其實(shí)這個(gè)大小根據(jù)手機(jī)還會(huì)不一樣倍奢,跟屏幕的dpi有關(guān)朴上,如果不設(shè)置inSampleSize,讀取加載到內(nèi)存中的option.outheightoption.outwidth會(huì)比1920*1080大的多卒煞,并且不同手機(jī)還不一樣痪宰,我的想法是因?yàn)槲业膱D片放到了drawble下,如果放到不同大小的bitmap下是不是同一臺(tái)手機(jī)都會(huì)不一樣畔裕,因?yàn)橄到y(tǒng)會(huì)根據(jù)這個(gè)文件夾來縮放原圖衣撬。所以造成了實(shí)際加載的比原圖大,如果放到xxxhdpi下扮饶,那系統(tǒng)又會(huì)不會(huì)給我們縮芯吡贰?試了的同學(xué)評(píng)論告訴一聲甜无,哈哈)
輸出

我設(shè)置需求是5050,注意是按比例扛点,并不是一定會(huì)縮到50*50
Paste_Image.png

可以看到已經(jīng)大大的縮小了,再看看內(nèi)存占用(50
50太小了岂丘,不明顯陵究,這里改成了400*400):

不要在UI線程加載圖片

一般圖片加載都是從本地磁盤或者網(wǎng)絡(luò)加載,如果在UI線程執(zhí)行這些操作奥帘,稍出意外直接ANR铜邮。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市翩概,隨后出現(xiàn)的幾起案子牲距,更是在濱河造成了極大的恐慌返咱,老刑警劉巖钥庇,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異咖摹,居然都是意外死亡评姨,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門萤晴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吐句,“玉大人,你說我怎么就攤上這事店读∴率啵” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵屯断,是天一觀的道長文虏。 經(jīng)常有香客問我侣诺,道長,這世上最難降的妖魔是什么氧秘? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任年鸳,我火速辦了婚禮,結(jié)果婚禮上丸相,老公的妹妹穿的比我還像新娘搔确。我一直安慰自己,他們只是感情好灭忠,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布膳算。 她就那樣靜靜地躺著,像睡著了一般弛作。 火紅的嫁衣襯著肌膚如雪畦幢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天缆蝉,我揣著相機(jī)與錄音宇葱,去河邊找鬼。 笑死刊头,一個(gè)胖子當(dāng)著我的面吹牛黍瞧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播原杂,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼印颤,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了穿肄?” 一聲冷哼從身側(cè)響起年局,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎咸产,沒想到半個(gè)月后矢否,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡脑溢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年僵朗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屑彻。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡验庙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出社牲,到底是詐尸還是另有隱情粪薛,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布搏恤,位于F島的核電站违寿,受9級(jí)特大地震影響让禀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜陨界,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一巡揍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧菌瘪,春花似錦腮敌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至录淡,卻和暖如春捌木,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嫉戚。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來泰國打工刨裆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人彬檀。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓帆啃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親窍帝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子努潘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

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