我需要转换一个带有位图数据的void *。 void *是从cpp函数返回的,我需要做的是转换这个传递给Jni的void *,并在Java中将其显示为位图。
Void * buffer = CppClass->getbuffer();
ByteArray byte[];
byte = void *;
的内容答案 0 :(得分:1)
由于java没有void*
且jni没有ByteArray
,因此不清楚你的执行环境是什么。
由于问题的根源是void * pixel map,我假设你想要创建一个带有像素的java Bitmap对象,混合使用JNI和Java代码。
首先看一下Bitmap类,有一个名为copyPixelsFromBuffer
的方便函数,看起来很有用,需要Buffer。
其次,查看JNI函数NewDirectByteBuffer,它需要一个C指针并创建一个ByteBuffer
,它也是Bitmap
所需的缓冲区。
现在很明显,你只需要:
ByteBuffer
ByteBuffer
传递给Java land Bitmap
填充ByteBuffer
。ImageView
或您的绘画例程显示它。P.S。由OP处理对象引用以消除GC友好关系。