Android 圖片加載之原理分析

android加載圖片需要哪些優(yōu)化熔吗?

首先,大家應(yīng)該知道,我們編寫的應(yīng)用程序都是有一定內(nèi)存限制的异剥,程序占用了過高的內(nèi)存就容易出現(xiàn)OOM(OutOfMemory)異常,在一個(gè)很小的ImageView上顯示一張超大的圖片不會(huì)帶來任何視覺上的好處絮重,但卻會(huì)占用我們相當(dāng)多寶貴的內(nèi)存冤寿,而且在性能上還可能會(huì)帶來負(fù)面影響。因此在展示高分辨率圖片的時(shí)候青伤,最好先將圖片進(jìn)行壓縮

當(dāng)你需要在界面上加載一大堆圖片的時(shí)候督怜,需要頻繁的加載同一張圖片,這時(shí)重新去加載一遍剛剛加載過的圖片無(wú)疑是性能的瓶頸狠角,因此需要使用圖片緩存技術(shù)

Android中一張圖片占據(jù)的內(nèi)存大小是如何計(jì)算号杠?

首先,我們需要搞清楚一個(gè)概念:我們?cè)陔娔X上看到的 png 格式或者 jpg 格式的圖片丰歌,png(jpg) 只是這張圖片的容器姨蟋,它們是經(jīng)過相對(duì)應(yīng)的壓縮算法將原圖每個(gè)像素點(diǎn)信息轉(zhuǎn)換用另一種數(shù)據(jù)格式表示,以此達(dá)到壓縮目的立帖,減少圖片文件大小眼溶。

而當(dāng)我們通過代碼,將這張圖片加載進(jìn)內(nèi)存時(shí)晓勇,會(huì)先解析圖片文件本身的數(shù)據(jù)格式堂飞,然后還原為位圖,也就是 Bitmap 對(duì)象绑咱,Bitmap 的大小取決于像素點(diǎn)的數(shù)據(jù)格式以及分辨率兩者了绰筛。

所以,一張 png 或者 jpg 格式的圖片大小描融,跟這張圖片加載進(jìn)內(nèi)存所占用的大小完全是兩回事别智。你不能說,我 jpg 圖片也就 10KB稼稿,那它就只占用 10KB 的內(nèi)存空間薄榛,這是不對(duì)的。

那么让歼,一張圖片占用的內(nèi)存空間大小究竟該如何計(jì)算敞恋?
計(jì)算一張圖片占用的內(nèi)存大小公式:分辨率 * 每個(gè)像素點(diǎn)的大小。
例如:一張圖片寬1080 谋右,高 452
那么硬猫,這張圖片的大小按照這個(gè)公式應(yīng)該是:1080 * 452 * 4B = 1952640B ≈ 1.86MB

ps: 這里像素點(diǎn)大小以 4B 來計(jì)算是因?yàn)椋?dāng)沒有特別指定時(shí),系統(tǒng)默認(rèn)為 ARGB_8888 作為像素點(diǎn)的數(shù)據(jù)格式啸蜜,其他的格式如下:
ALPHA_8 -- (1B)
RGB_565 -- (2B)
ARGB_4444 -- (2B)
ARGB_8888 -- (4B)
RGBA_F16 -- (8B)

不過坑雅,這樣的說法并不準(zhǔn)確,在 Android 原生的 Bitmap 操作中衬横,某些場(chǎng)景下裹粤,圖片被加載進(jìn)內(nèi)存時(shí)的分辨率會(huì)經(jīng)過一層轉(zhuǎn)換,所以蜂林,雖然最終圖片大小的計(jì)算公式仍舊是分辨率*像素點(diǎn)大小遥诉,但此時(shí)的分辨率已不是圖片本身的分辨率了。

tip:

1.圖片占據(jù)內(nèi)存空間大小與圖片在界面上顯示的大小沒有關(guān)系

2.當(dāng)圖片放在 res 內(nèi)的不同目錄中噪叙,最終圖片加載進(jìn)內(nèi)存所占據(jù)的大小會(huì)不一樣矮锈,因?yàn)橄到y(tǒng)在加載 res 目錄下的資源圖片時(shí),會(huì)根據(jù)圖片存放的不同目錄做一次分辨率的轉(zhuǎn)換睁蕾,而轉(zhuǎn)換的規(guī)則是:

新圖的高度 = 原圖高度 * (設(shè)備的 dpi / 目錄對(duì)應(yīng)的 dpi )

新圖的寬度 = 原圖寬度 * (設(shè)備的 dpi / 目錄對(duì)應(yīng)的 dpi )

目錄名稱與 dpi 的對(duì)應(yīng)關(guān)系如下苞笨,drawable 沒帶后綴對(duì)應(yīng) 160 dpi:


目錄和dpi的關(guān)系.png

3.同一個(gè) app,但跑在不同 dpi 設(shè)備上子眶,同樣的界面猫缭,但所耗的內(nèi)存有可能是不一樣的

因?yàn)樵O(shè)備的dpi不一樣

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市壹店,隨后出現(xiàn)的幾起案子猜丹,更是在濱河造成了極大的恐慌,老刑警劉巖硅卢,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件射窒,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡将塑,警方通過查閱死者的電腦和手機(jī)脉顿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來点寥,“玉大人艾疟,你說我怎么就攤上這事「冶纾” “怎么了蔽莱?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)戚长。 經(jīng)常有香客問我盗冷,道長(zhǎng),這世上最難降的妖魔是什么同廉? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任仪糖,我火速辦了婚禮柑司,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘锅劝。我一直安慰自己攒驰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布故爵。 她就那樣靜靜地躺著玻粪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪稠集。 梳的紋絲不亂的頭發(fā)上奶段,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天饥瓷,我揣著相機(jī)與錄音剥纷,去河邊找鬼。 笑死呢铆,一個(gè)胖子當(dāng)著我的面吹牛晦鞋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播棺克,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼悠垛,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了娜谊?” 一聲冷哼從身側(cè)響起确买,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎纱皆,沒想到半個(gè)月后湾趾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡派草,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年搀缠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片近迁。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡艺普,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鉴竭,到底是詐尸還是另有隱情歧譬,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布搏存,位于F島的核電站缴罗,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏祭埂。R本人自食惡果不足惜面氓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一兵钮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧舌界,春花似錦掘譬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至藐握,卻和暖如春靴拱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背猾普。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工袜炕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人初家。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓偎窘,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親溜在。 傳聞我的和親對(duì)象是個(gè)殘疾皇子陌知,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

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

  • 綠蘿的葉片志笼,有水的時(shí)候沿盅,長(zhǎng)得很有精神,葉片餵飽了水籽腕,就很健壯嗡呼,不斷的相處中,就發(fā)現(xiàn)水多水少皇耗,都不如剛剛好南窗,葉子總歸...
    沐雨時(shí)光閱讀 355評(píng)論 0 1
  • 人有時(shí)會(huì)有強(qiáng)迫妄想癥,在虛幻夢(mèng)境中肆無(wú)忌憚郎楼,胡作非為万伤,這就是隱藏在人們心中最深的惡,一旦有合適的土壤就會(huì)呜袁,在黑照中...
    農(nóng)家女在田園閱讀 296評(píng)論 0 2
  • 我自然不能和農(nóng)村老太太一樣信一樣的教敌买。 媽媽信了基督教,而我必然要和她不一樣阶界,要選擇信天主教虹钮。當(dāng)然這只是其一聋庵。 其...
    九月露水閱讀 224評(píng)論 0 2