2012-06-08 18 views
5

Lo que quiero, el texto se mueve con el dedo sobre la imagen, en el botón clic redibuja la imagen existente en una nueva que es como texto pegado en ella.mover texto y volver a dibujar los problemas del dispositivo de imagen

funciona bien para v3.1, así como en Emulator. pero traté de probar en el dispositivo v2.2 se produce el forse Cerrar. Mientras que tiene todo el soporte para los dispositivos. ¿Me puede ayudar a salir de aquí? Será crucial en unas pocas semanas. Gracias de antemano.

///Redrawing the image & touchin Move of the Canvas with text 
public void redrawImage(String path,float sizeValue,String textValue,int colorValue) { 
     BitmapFactory.Options options = new BitmapFactory.Options(); 
     try { 
      options.inMutable = true; 
     } catch (Exception e) { 
      // TODO: handle exception 
      System.out.println("#############Error is======"+e.getMessage()); 
     } 

     Bitmap bm = BitmapFactory.decodeFile(path,options); 

     proxy = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), Config.ARGB_8888); 
     Canvas c = new Canvas(proxy); 

     //Here, we draw the background image. 
     c.drawBitmap(bm, new Matrix(), null); 

     Paint paint = new Paint(); 
     paint.setColor(colorValue); // Text Color 
     paint.setStrokeWidth(30); // Text Size 
     paint.setTextSize(sizeValue); 

     System.out.println("Values passing=========="+someGlobalXvariable+", "+someGlobalYvariable+", " 
             +sizeValue+", "+textValue); 

     //Here, we draw the text where the user last touched. 
     c.drawText(textValue, someGlobalXvariable, someGlobalYvariable, paint); 

     popImgae.setImageBitmap(proxy); 
} 
+0

¿Se puede publicar el registro de errores de logcat? – Zelleriation

+1

options.inMutable = true; es compatible desde: API Nivel 11, y no necesita cargar bitmap bm como Mutable. solo el proxy de mapa de bits debe ser mutable –

Respuesta

0

Sería de gran ayuda para saber cuando la fuerza de cierre ocurre, como justo después se inicia la aplicación, tan pronto como se toca antes de texto cada vez atrae?

de depuración en el dispositivo
Una técnica bastante fácil y fullproof se está ejecutando el código en modo de depuración en el dispositivo real. Agregue un punto de interrupción al comienzo de su función y pise cada línea hasta que se cierre forzadamente.

Posiblemente OOM
Si llama redrawImage en repetidas ocasiones, como cada cuadro durante un toque, la asignación de un nuevo mapa de bits pueden comer una gran cantidad de memoria de forma rápida y causar el accidente:

Bitmap bm = BitmapFactory.decodeFile(path,options); 

Entonces la fuerza cercana podría ocurrir después de un poco. Intente cambiar bm a un parámetro de método o campo de miembro asignado y leído desde el archivo una vez.

Cuestiones relacionadas