Создайте IntBuffer в своем Java-коде и передайте массив в свою родную библиотеку:
// this is called from native code
buffer = IntBuffer.allocate(width*height);
return buffer.array();
Используйте GetIntArrayElements, чтобы получить jint* и записать в массив:
jint * arr = env->GetIntArrayElements((jintArray)bufferArray, NULL);
Запишите в массив и, когда закончите, отпустите:
env->ReleaseIntArrayElements((jintArray)bufferArray, arr, 0);
Сообщите коду Java, что массив был обновлен, и используйте Canvas.drawBitmap() для рисования IntBuffer:
canvas.drawBitmap(buffer.array(), ....);
Чтобы рисовать в растровое изображение, инициализируйте холст растровым изображением.
... new Canvas(bitmap)
person
Maik
schedule
18.01.2011