2013-10-21 22 views
0

我無法通過android.renderscript.Allocation加載動畫GIF。這裏是有缺陷的代碼:android.renderscript.RSInvalidStateException:錯誤的位圖類型:null

Bitmap out = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Bitmap.Config.ARGB_8888); 
mInAllocation = Allocation.createFromBitmap(mRS, src, 
      Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT); 

它適用於我的Nexus 4罰款運行Android 4.2 - 但失敗對我的Optimus G ^運行Android 4.1。拋出的異常是:

E/AndroidRuntime(8398): Caused by: android.renderscript.RSInvalidStateException: Bad bitmap type: null 

這是從Allocation.typeFromBitmap拋出,因爲src.getConfig返回null;即使我特地用下面的代碼創建:

BitmapFactory.Options bitmapOptions = new BitmapFactory.Options(); 
bitmapOptions.inPreferredConfig = Bitmap.Config.ARGB_8888; 
Bitmap photo = BitmapFactory.decodeByteArray(data, 0, data.length, bitmapOptions); 

回答

1

唉,這是一個錯誤,我們4.3的開發過程中發現和摸索,(無論是在4.3和支持庫)。本質上,Bitmap.Config將爲任何索引的位圖返回NULL。我不知道爲什麼4.2沒有失敗,因爲我不記得修復那裏(你確定N4不在4.3?)。

解決這個問題的最簡單方法是,不出所料:如果可以,請使用支持庫。它包含修復程序。

+0

你是絕對正確的 - 我在我的Nexus 4上運行4.3版本,並沒有失敗。感謝更新。現在我將使用支持庫。 – n83