處理點陣圖

Stay organized with collections Save and categorize content based on your preferences.

在 Android 應用程式載入點陣圖可能很造成麻煩的原因有幾種:

  • 點陣圖非常容易用光應用程式的記憶體預算。舉例來說,Pixel 手機的相機最高可拍攝 4048x3036 像素 (1200 萬像素)。如果點陣圖使用的設定是 ARGB_8888,那麼 Android 2.3 (API 級別 9) 以上版本用預設值在記憶體載入單一相片時需要消耗大約 48MB 的記憶體 (4048*3036*4 位元組)。這種龐大的記憶體需求可能會馬上用完應用程式可以使用的所有記憶體。
  • 在 UI 執行緒載入點陣圖可能會降級應用程式的效能,導致回應緩慢,或甚至出現 ANR 訊息。因此,當使用點陣圖的時候,必須適當管理執行緒。
  • 如果應用程式在記憶體裡面載入多個點陣圖,您需要特別注意管理記憶體和磁碟快取。否則應用程式的 UI 回應度和順暢度就可能受到影響。

大多數的情況下,我們都建議您使用 Glide 程式庫在應用程式內擷取、解碼和顯示點陣圖。Glide 可以抽象化處理這些工作,以及 Android 點陣圖和其他圖像相關工作的繁瑣之處。如果想瞭解如何使用和下載 Glide,請到 GitHub 的 Glide 存放區

您也可以選擇直接使用 Android 架構內建較低級別的 API。如果想進一步瞭解如何操作,請參閱「有效率地載入大型點陣圖」、「快取點陣圖」和「管理點陣圖記憶體」。

其他資源