为什么GLES20RecordingCanvas #setBitmap总是抛出UnsupportedOperationException?

时间:2014-02-20 14:09:43

标签: android canvas android-animation

所以我正在创建一个自定义视图,我必须经常(60 FPS)并无限地绘制不同的位图来实现动画。

我不能使用AnimationDrawable,这不是重复Drawables的设置循环。

我认为它在自定义视图中就像onDraw()事件一样简单,我会在canvas参数上调用setBitmap()。但是,我得到UnsupportedOperationException。在Canvas上我在onDraw()事件之外创建了自己的setBitmap。

我看到我正在为我的自定义视图隐式使用Canvas的硬件加速实现(GLES20RecordingCanvas)。 setBitmap()方法的实现只是抛出UnsupportedOperationException()。

为什么?

1 个答案:

答案 0 :(得分:1)

请看source code

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

开发人员根本没有实现此方法

请注意GLES20Canvas extends HardwareCanvasGLES20RecordingCanvas extends GLES20Canvas