我有一个自定义TextureView
,所有渲染都通过OpenGL ES通过JNI / C ++处理。
除startDragAndDrop
方法外,几乎所有东西都在工作。这给了我一个空的拖动视图...
查看View.DragShadowBuilder
类的源代码,我发现所有用于创建拖动视图的渲染逻辑都在方法public void onDrawShadow(Canvas canvas)
中;基本上,它将画布传递给视图的onDraw(Canvas canvas)
方法。
现在问题是TextureView
没有实现onDraw(Canvas canvas)
方法。我无法覆盖它,因为它是最终的...
有什么方法可以在此画布中呈现TextureView
的内容...
现在,我可以使用ByteBuffer
创建位图并从OpenGL复制缓冲区。但是同样,我不知道如何将该位图传递给画布...
答案 0 :(得分:1)
调用canvas.drawBitmap(bitmap,0,0,null);应该很简单。里面的onDrawShadow。如果这样不起作用,则可能需要在调用bitmap.copyPixelsFromBuffer时检查传递给Bitmap的ByteBuffer中的数据格式,以确保其与Bitmap.Config匹配。