Android TextureView метод startDragAndDrop () показывает пустой Drag View - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть пользовательский 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 голосов
/ 21 декабря 2018

Это должен быть простой вызов метода canvas.drawBitmap (bitmap, 0, 0, null);внутри onDrawShadow.Если это не сработает, вам может потребоваться проверить формат данных в ByteBuffer, который вы передаете Bitmap, когда вызываете bitmap.copyPixelsFromBuffer, чтобы убедиться, что он соответствует Bitmap.Config.

...