2014-02-20 97 views
1

因此,我創建了一個自定義視圖,我必須經常(60 FPS)並無限制地繪製不同的位圖來實現動畫。爲什麼GLES20RecordingCanvas#setBitmap總是拋出UnsupportedOperationException?

我不能使用AnimationDrawable,這不是一個重複Drawables的設置循環。

我認爲它會像自定義視圖中的onDraw()事件一樣簡單,我會在canvas參數上調用setBitmap()。但是,我得到一個UnsupportedOperationException。在Canvas上,我使用自己的onDraw()事件,setBitmap可以正常工作。

我看到我爲自定義視圖隱式使用了Canvas(GLES20RecordingCanvas)的硬件加速實現。 setBitmap()方法的實現僅僅是拋出一個UnsupportedOperationException()。

爲什麼?

+2

大多數人她只能推測原因。 – Henry

回答

1

看看在這裏的source code

@Override 
public void setBitmap(Bitmap bitmap) { 
    throw new UnsupportedOperationException(); 
} 

的開發人員只需didnt't實現此方法(還)

注意GLES20Canvas extends HardwareCanvasGLES20RecordingCanvas extends GLES20Canvas

相關問題