導航:首頁 > 操作系統 > android高效載入圖片

android高效載入圖片

發布時間:2025-08-26 15:52:39

1. 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開發藝術探索》

閱讀全文

與android高效載入圖片相關的資料

熱點內容
有什麼手機app可以抓頁面元素 瀏覽:514
夏雨程序員 瀏覽:824
如何確定單片機定時器補償值 瀏覽:731
加工單元的plc編程 瀏覽:887
做飯程序員男人被開除 瀏覽:840
仿蘋果小圓點控制項源碼 瀏覽:599
單片機lcd1602程序 瀏覽:897
松下冰箱壓縮機頂置 瀏覽:41
解壓玩具asmr油管 瀏覽:69
matlab編程語言是什麼 瀏覽:421
學編程的朋友圈說說 瀏覽:810
電腦命令在哪 瀏覽:96
怎麼進公司伺服器地址 瀏覽:461
windows下make命令 瀏覽:487
計算機編程班地扯 瀏覽:272
化工壓縮機型號 瀏覽:606
android高效載入圖片 瀏覽:916
flygram伺服器連接超時怎麼辦 瀏覽:546
java讀文件讀一行 瀏覽:615
什麼app定酒店便宜 瀏覽:780