Solicitud urgente: mostrar datos de imagen de Android RGBA_8888 en ImageView
Convierte directamente el color de un determinado píxel: int argb = (rgba & 0xFF) << 24 | (rgba >>> 8);
Convierte el mapa de bits generado (SDK) :
/**
* Inicializar pincel de filtro de color
*/
void initFilterPaint() {
Pintura pintura= nueva Pintura();
float[] src = {
0, 0, 0, 1, 0, //R' = 0*R + 0 * G + 0*B + 1*A + 0;
1, 0, 0, 0, 0, //G' = 1*R + 0*G + 0*B + 0*A + 0;
0, 1, 0, 0, 0, //B' = 0*R + 1*G + 0*B + 0*A + 0;
0 , 0, 1, 0, 0 };//A' = 0*R + 0*G + 1*B + 0*A + 0;
filtro ColorFilter = nuevo ColorMatrixColorFilter(nuevo ColorMatrix( src ));
paint.setColorFilter(filtro);
this.mFilterPaint = pintura;
}
/**< / p>
* @param iv ImageView que se presentará
* @param src Matriz unidimensional de píxeles 0xrrggbbaa Referencia de formato Método Bitmap.setPixels
* @param width Ancho de imagen
* @param altura altura de la imagen
*/
void filterArrayAndShow(ImageView iv,int[] src,int width,int height) {
pintura final filterPaint = mFilterPaint;
mapa de bits mapa de bits = Bitmap.createBitmap(ancho, alto, Bitmap.Config.ARGB_8888);
// largo uptimeMillis = SystemClock.uptimeMillis ( );
Canvas bitmapCanvas = new Canvas(bitmap);
bitmapCanvas.drawBitmap(src, 0, width, 0, 0, width, height, true, filterPaint);
p>iv.setImageBitmap(mapa de bits);
// System.out.println(SystemClock.uptimeMillis() - uptimeMillis);
}
/**
* @param iv ImageView a presentar
* @param src Mapa de bits con píxel 0xrrggbbaa
*
/
void filterAndShow(ImageView iv, Bitmap src) {
final Paint filterPaint = mFilterPaint;
Bitmap bitmap = Bitmap.createBitmap(src.getWidth() , src.getHeight(), src.getConfig());
// long uptimeMillis = SystemClock.uptimeMillis();
Canvas bitmapCanvas = new Canvas(bitmap); p> p>
bitmapCanvas.drawBitmap(src, 0, 0, filterPaint);
iv.setImageBitmap(bitmap);
// System.out.println(SystemClock .uptimeMillis () - uptimeMillis);
}