當前位置:首頁 » 安卓系統 » android圖片載入

android圖片載入

發布時間: 2025-09-07 06:10:48

A. Android 圖片載入(一)高效載入Bitmap 基礎篇

由於Bitmap的特殊性以及Android對單個應用所規定的最大內存限制,我們在同時載入大量Bitmap時很容易發生內存溢出,即我們通常所說的OutOfMemoryError(OOM),因此高效載入Bitmap就成為了每個Android開發者的必備技能。

在學習如何高效地載入Bitmap之前,首先介紹一下如何載入一個Bitmap。我們都知道,Bitmap在Android中通常指的是一張圖片,那麼如何將JPG、PNG等格式的圖片轉換成Bitmap對象呢?BitmapFactory類給我們提供了一些方法:

接下來開始介紹如何高效地載入Bitmap,其實核心思想很簡單: 就是採用BitmapFactory.Options參數來調整圖片尺寸來適配控制項的大小。

假如我們顯示圖片的控制項ImageView寬高為100×100像素,而圖片的尺寸為1024×1024像素,這個時候如果將整個圖片載入進來並顯示到控制項上,自然是很佔用內存資源的。這個時候可以通過BitmapFactory.Options按一定的采樣率載入縮小後的圖片,再將縮小後的圖片顯示到ImageView中,這樣就能減小內存佔用從而在一定程度上避免OOM的發生。

通過BitmapFactory.Options來縮放圖片,主要是使用它的inSampleSize參數,也就是前面提到的采樣率。當采樣率inSampleSize為1時,采樣後的圖片大小為原圖大小;當采樣率inSampleSize>1,比如為2時,采樣後的圖片寬高都為原圖的1/2,即像素降為原圖的1/4,佔用的內存大小也就是原圖的1/4;比較特殊的是,當采樣率inSampleSize<1時,系統會自動將該值當做1來處理。 因此可以得出一個結論:采樣率inSampleSize必須是大於1的整數圖片才會有縮小的效果,並且采樣率同時作用於寬高,也就是說采樣後的圖片會縮小到原圖的1/(inSampleSize^2)。比如inSampleSize=4,那麼縮放比例為1/16。

我們現在知道了,通過采樣率可以提高圖片的載入效率,那麼如何才能計算出最合適的采樣率?我們可以按照如下流程:

接下來以decodeFile方法為例實現圖片的縮放,其他三個方法處理方式類似。

下一篇: Android 圖片載入(二)圖片載入框架Glide 入門篇

《Android開發藝術探索》

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:585
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:881
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:574
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:761
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:676
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1005
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:249
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:108
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:798
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:705