Android TextureView的startDragAndDrop()方法显示一个空的Drag View

时间:2018-12-20 22:43:54

标签: android android-textureview

我有一个自定义TextureView,所有渲染都通过OpenGL ES通过JNI / C ++处理。

startDragAndDrop方法外,几乎所有东西都在工作。这给了我一个空的拖动视图...

查看View.DragShadowBuilder类的源代码,我发现所有用于创建拖动视图的渲染逻辑都在方法public void onDrawShadow(Canvas canvas)中;基本上,它将画布传递给视图的onDraw(Canvas canvas)方法。

现在问题是TextureView没有实现onDraw(Canvas canvas)方法。我无法覆盖它,因为它是最终的...

有什么方法可以在此画布中呈现TextureView的内容...

现在,我可以使用ByteBuffer创建位图并从OpenGL复制缓冲区。但是同样,我不知道如何将该位图传递给画布...

1 个答案:

答案 0 :(得分:1)

调用canvas.drawBitmap(bitmap,0,0,null);应该很简单。里面的onDrawShadow。如果这样不起作用,则可能需要在调用bitmap.copyPixelsFromBuffer时检查传递给Bitmap的ByteBuffer中的数据格式,以确保其与Bitmap.Config匹配。