Displaying Bitmaps Efficiently (一)

來源:互聯網
上載者:User

高效地顯示圖片——Android官網原文翻譯

譯者:我在一個剛剛組建的Android項目組, OutOfMemory困擾了我很久,偶然在Stack Overflow看到有人推薦,閱讀了這篇文章。此文技術並不算高端,而且目前已經有一些開源組件可以解決這種問題,但本文從原理出發全面地講述了類似問題應該怎樣處理,使我得到了不少啟示。本人水平有限,翻譯過程中也是一直在查單詞,翻譯不到位的地方還請見諒。

 

學習怎樣處理在Android中載入圖片不僅可以協助您建立響應式的UI,而且可以避免超出應用程式的記憶體限制,從而避免導致OutOfMemory的異常。如果不夠謹慎的話,載入Bitmap對象會很快的消耗掉應用程式的可用記憶體,導致程式崩潰:java.lang.OutofMemoryError: bitmap size exceeds VM budget.

1由於如下這些原因,在Android程式中載入圖片需要非常謹慎

1.行動裝置通常擁有很有限的系統資源。Android裝置的每一個應用程式可以得到最少16MB的可用記憶體。安卓相容性解釋文檔Android Compatibility Definition Document 

2.Bitamp對象會佔用很多的記憶體,尤其是對具有豐富圖片或者照片的應用來說,記憶體消耗尤為嚴重。舉例來說,Galaxy Nexus的照相機(500萬像素)最大可以照出來一張

2以下課程將循序漸進的講述在Android環境下怎樣快速安全的載入圖片

高效的載入圖片:講述怎樣保證不超出應用程式記憶體限制而載入很大的圖片。

在UI線程以外處理圖片:圖片操作(重新設定尺寸,從遠程下載等等)永遠不要佔用UI線程。這裡介紹怎樣在後台線程使用AsyncTask處理圖片,並且解釋怎樣處理並發問題。

緩衝圖片:這一節講述怎樣使用記憶體和外存緩衝圖片,在載入眾多圖片時提升UI的響應程度和流動性。

管理圖片記憶體:這節闡述怎樣管理圖片記憶體來使應用程式的效能達到最佳。

在UI中顯示圖片:這一節將前文綜合起來,向您展示,怎樣使用後台線程和圖片緩衝把圖片載入到像ViewPager或者GridView這種組件中。

 

點擊這裡下載樣本源碼

原文連結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.