0

我很難在過去3天內在我的App中逐幀執行動畫。我在可繪製文件夾中有大約90個圖像來執行動畫。Android Frame by Frame動畫問題內存不足或緩慢動畫

首先我試圖AnimationDrawbale但它可以讓內存不足的錯誤。我也申請了android:LargeHeap="true",但仍然出現內存錯誤。

其次https://github.com/tigerjj/FasterAnimationsContainer/blob/master/src/com/tigerlee/libs/FasterAnimationsContainer.java此類嘗試過,但這裏的問題就來爲動畫是很慢的。我希望它非常流暢。

請幫忙。很長時間以來一直困擾着它。

回答

0

不幸的是,逐幀動畫需要大量內存,並且(取決於所涉及的幀大小和數量)可以快速導致OutOfMemoryException,因爲它們一次加載所有幀。單獨檢索每個幀會導致動畫變慢,因爲系統必須在顯示每幀之前先讀取每幀。因此,根據您的情況,有下列選項你可以追求:

  • 刪除動畫:我自己選擇了這個選項了幾次後,仔細考慮(裝載的必要性,在我的情況) 動畫。逐幀動畫有一個巨大的性能損失,只是不值得。
  • 調整您的動畫:爲了降低動畫的內存使用量,您應該考慮降低幀的分辨率或涉及的幀數(或兩者)。
  • 使用其他動畫:還有其他動畫選項可供使用,包括Animator自API級別11和AnimatedVectorDrawable以API級別11(使用支持庫)開始。根據您擁有的動畫類型,您可以遷移到其中一個。