Closed. This question is opinion-based。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
                        
                        5年前关闭。
                                                                                            
                
        
因此,我要创建一个自定义视图,为此我必须经常(60 FPS)并无限地绘制不同的位图以实现动画。

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

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

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

为什么?

最佳答案

在这里查看source code

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


开发人员根本没有实现此方法(尚未)

请注意GLES20Canvas extends HardwareCanvasGLES20RecordingCanvas extends GLES20Canvas

关于android - 为什么GLES20RecordingCanvas#setBitmap总是抛出UnsupportedOperationException? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21910257/

10-10 01:44