У меня есть пользовательский TextureView
, что весь рендеринг обрабатывается с использованием OpenGL ES через JNI / C ++.
Практически все работает, кроме метода startDragAndDrop
.Что дает мне пустое представление перетаскивания ...
Глядя на исходный код класса View.DragShadowBuilder
, я обнаружил, что вся логика рендеринга для создания представления перетаскивания находится внутри метода public void onDrawShadow(Canvas canvas)
;который в основном передает холст методу onDraw(Canvas canvas)
представления.
Теперь проблема в том, что TextureView
не реализует метод onDraw(Canvas canvas)
.И я не могу переопределить его, так как он окончательный ...
Могу ли я каким-то образом отобразить содержимое моего TextureView
на этом холсте ...
Прямо сейчас яЯ могу создать растровое изображение, используя ByteBuffer
и копировать буфер из OpenGL.Но опять же я не знаю, как передать это растровое изображение на холст ...