2010-03-03 11 views
7

Im tratando de superposición de imágenes en un lienzo utilizando el siguiente método:error android.graphics.Canvas.throwIfRecycled cuando se superponen los mapas de bits

private Bitmap overlay(Bitmap bmp1, Bitmap bmp2) { 

    bmOverlay = Bitmap.createBitmap(70, 70, Bitmap.Config.RGB_565); 
    canvas = new Canvas(bmOverlay); 
    canvas.drawBitmap(bmp1, 0, 0, null); //line 179 
    canvas.drawBitmap(bmp2, 0, 0, null); 
    return bmOverlay;   
} 

Sin embargo, mi aplicación sigue fallando y el registro lee:

java .lang.NullPointerException en android.graphics.Canvas.throwIfRecycled (Canvas.java:954) en android.graphics.Canvas.drawBitmap (Canvas.java:980) en com.MyApp.overlay (MyApp.java:179)

¿Alguien puede ayudar?

+0

Esto sucede intermitentemente por cierto. Estoy descargando imágenes de Internet y superponiendo cada una con un marco dependiendo de ciertas condiciones. bmp1 es la imagen que descargo, y bmp2 es el marco con el que los superpongo. – Yavin4

+0

¿Estás seguro de que bmp1 no es nulo? –

+0

Leer tu comentario ahora me hace hacer una palma de la cara. Me pondré en contacto contigo, pero creo que me refiero a este método en un try/catch. En este caso, debería estar fuera de mi try/catch. Más detalles pronto. Gracias Maurits. : 0) – Yavin4

Respuesta

4

Tuve la misma excepción trowIfRecycled al intentar dibujar un mapa de bits en un lienzo. Estaba tratando de dibujar un hilo que comencé, antes de que el programa comenzara a inicializar el mapa de bits. Entonces en mi caso: el mapa de bits era nulo y tuve que buscar un lugar mejor para hacer la inicialización.

0

también tuve este mismo seguimiento de la pila y traté de encontrar una solución a las cosas de hilo, etc., Pero luego me di cuenta de que nunca le asigna la variable de mapa de bits en mi código.

Cuestiones relacionadas