Convertir matriz de int en Bitmap en Android

Tengo una matriz MxN de ints que representan colores (dicen el formato de RGBA, pero eso es fácilmente cambiable). Me gustaría convertirlos a un MxN Bitmap o algo más (como una textura OpenGL) que puedo renderizar a la pantalla. ¿Hay una manera rápida de hacer esto? Bucle a través de la matriz y el dibujo de ellos a la lona es demasiado lento.

Pruebe esto le dará el mapa de bits.

// You are using RGBA that's why Config is ARGB.8888 bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888); // vector is your int[] of ARGB bitmap.copyPixelsFromBuffer(IntBuffer.wrap(vector)); 

EDITAR:

  //OR , you can generate IntBuffer from following native method /*private IntBuffer makeBuffer(int[] src, int n) { IntBuffer dst = IntBuffer.allocate(n*n); for (int i = 0; i < n; i++) { dst.put(src); } dst.rewind(); return dst; }*/ 

Espero que te ayude .

¿Por qué no utilizar Bitmap.setPixel ? Incluso es API nivel 1:

 int[] array = your array of pixels here... int width = width of "array"... int height = height of "array"... // Create bitmap Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); // Set the pixels bitmap.setPixels(array, 0, width, 0, 0, width, height); 

Se puede jugar con offset / stride / x / y según sea necesario.
No hay bucles. No hay asignaciones adicionales.

Sí, parece que tienes toda la información que necesitas. Si M es el ancho y N es la altura, puede crear un nuevo mapa de bits con Bitmap.createBitmap y puede rellenar los valores ARGB con el método setPixels que toma una matriz int.

Bitmap.createBitmap

Bitmap.setPixels

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.