Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 24/10/11, 15:47:13
Avatar de bicho_visacoso
bicho_visacoso bicho_visacoso no está en línea
Miembro del foro
Mensajes: 50
 
Fecha de registro: sep 2010
Mensajes: 50
Modelo de smartphone: HTC Legend
Mencionado: 1 comentarios
Tagged: 0 hilos
¿Porqué este código falla vil mente?

Buenas,

Estoy intentando dibujar en pantalla una serie de pixels que tengo en un array int (es para leer una foto en RAW y tras procesarla presentarla como dicho array). El tema es que al llegar al punto en el que hago el drawBitmap se produce un FC y no entiendo el motivo. ¿Alguien me puede ayudar?

@override
protected void onDraw(Canvas canvas) {
int []imagen=new int[160000];
for(int i=0;i<imagen.length;i++){
imagen[i]=Color.argb(128, 128, 128, 128);
}

Bitmap myBitmap=null;
myBitmap.createBitmap(imagen, 400, 400, Bitmap.Config.ARGB_8888);
canvas.drawBitmap(myBitmap, 2040, 100, null);
}

Muchas gracias y un saludo.
David
Responder Con Cita


  #2  
Viejo 24/10/11, 17:05:02
Avatar de hecsagis
hecsagis hecsagis no está en línea
Desarrollador
Mensajes: 266
Compra y venta: (1)
 
Fecha de registro: mar 2009
Mensajes: 266
Modelo de smartphone: Nexus 5
Tu operador: Vodafone
Mencionado: 0 comentarios
Tagged: 0 hilos
Es importante que pegues también el error que te da el FC, ahí viene donde está el problema
Responder Con Cita
  #3  
Viejo 24/10/11, 22:51:55
Avatar de bicho_visacoso
bicho_visacoso bicho_visacoso no está en línea
Miembro del foro
Mensajes: 50
 
Fecha de registro: sep 2010
Mensajes: 50
Modelo de smartphone: HTC Legend
Mencionado: 1 comentarios
Tagged: 0 hilos
Hola,

El mensaje que me aparece al ejecutarlo en el tablet es "La aplicación se ha interrumpido inesperadamente. Inténtalo de nuevo". (Forzar cierre). No sé si con el mensaje del FC te refieres a otra cosa... lo estoy intentando compilar en eclipse (por si es alguna opción del entorno).

La linea que falla concretamente es canvas.drawBitmap(myBitmap, 2040, 100, null), si la comento el programa no falla, en cuanto la pongo para que se ejecute revienta.

Es desesperante...
Responder Con Cita
  #4  
Viejo 24/10/11, 23:38:16
Avatar de hecsagis
hecsagis hecsagis no está en línea
Desarrollador
Mensajes: 266
Compra y venta: (1)
 
Fecha de registro: mar 2009
Mensajes: 266
Modelo de smartphone: Nexus 5
Tu operador: Vodafone
Mencionado: 0 comentarios
Tagged: 0 hilos
Cuando te da el FC, en el eclipse puedes ver en el logcat que es lo que ha causado el error.

Ahí te dirá porque esa línea ha hecho que el programa pete
Responder Con Cita
  #5  
Viejo 25/10/11, 00:23:57
Avatar de bicho_visacoso
bicho_visacoso bicho_visacoso no está en línea
Miembro del foro
Mensajes: 50
 
Fecha de registro: sep 2010
Mensajes: 50
Modelo de smartphone: HTC Legend
Mencionado: 1 comentarios
Tagged: 0 hilos
10-25 00:20:05.080: W/dalvikvm(12336): threadid=1: thread exiting with uncaught exception (group=0x401ab760)
10-25 00:20:05.090: E/AndroidRuntime(12336): FATAL EXCEPTION: main
10-25 00:20:05.090: E/AndroidRuntime(12336): java.lang.NullPointerException
10-25 00:20:05.090: E/AndroidRuntime(12336): at android.graphics.Canvas.throwIfRecycled(Canvas.jav a:1011)
10-25 00:20:05.090: E/AndroidRuntime(12336): at android.graphics.Canvas.drawBitmap(Canvas.java:105 2)
10-25 00:20:05.090: E/AndroidRuntime(12336): at com.darkroom.DarkroomActivity$myView.onDraw(Darkro omActivity.java:39)
10-25 00:20:05.090: E/AndroidRuntime(12336): at android.view.View.draw(View.java:9286)
10-25 00:20:05.090: E/AndroidRuntime(12336): at android.view.ViewGroup.drawChild(ViewGroup.java:25 84)
10-25 00:20:05.090: E/AndroidRuntime(12336): at android.view.ViewGroup.dispatchDraw(ViewGroup.java :2189)
10-25 00:20:05.090: E/AndroidRuntime(12336): at android.view.ViewGroup.drawChild(ViewGroup.java:25 82)
10-25 00:20:05.090: E/AndroidRuntime(12336): at android.view.ViewGroup.dispatchDraw(ViewGroup.java :2189)
10-25 00:20:05.090: E/AndroidRuntime(12336): at android.view.ViewGroup.drawChild(ViewGroup.java:25 82)
10-25 00:20:05.090: E/AndroidRuntime(12336): at android.view.ViewGroup.dispatchDraw(ViewGroup.java :2189)
10-25 00:20:05.090: E/AndroidRuntime(12336): at android.view.View.draw(View.java:9289)
10-25 00:20:05.090: E/AndroidRuntime(12336): at android.widget.FrameLayout.draw(FrameLayout.java:4 19)
10-25 00:20:05.090: E/AndroidRuntime(12336): at com.android.internal.policy.impl.PhoneWindow$Decor View.draw(PhoneWindow.java:1923)
10-25 00:20:05.090: E/AndroidRuntime(12336): at android.view.ViewRoot.draw(ViewRoot.java:1701)
10-25 00:20:05.090: E/AndroidRuntime(12336): at android.view.ViewRoot.performTraversals(ViewRoot.j ava:1416)
10-25 00:20:05.090: E/AndroidRuntime(12336): at android.view.ViewRoot.handleMessage(ViewRoot.java: 2046)
10-25 00:20:05.090: E/AndroidRuntime(12336): at android.os.Handler.dispatchMessage(Handler.java:99 )
10-25 00:20:05.090: E/AndroidRuntime(12336): at android.os.Looper.loop(Looper.java:132)
10-25 00:20:05.090: E/AndroidRuntime(12336): at android.app.ActivityThread.main(ActivityThread.jav a:4123)
10-25 00:20:05.090: E/AndroidRuntime(12336): at java.lang.reflect.Method.invokeNative(Native Method)
10-25 00:20:05.090: E/AndroidRuntime(12336): at java.lang.reflect.Method.invoke(Method.java:491)
10-25 00:20:05.090: E/AndroidRuntime(12336): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:841)
10-25 00:20:05.090: E/AndroidRuntime(12336): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:599)
10-25 00:20:05.090: E/AndroidRuntime(12336): at dalvik.system.NativeStart.main(Native Method)
10-25 00:20:05.110: D/dalvikvm(12336): GC_CONCURRENT freed 54K, 4% free 7582K/7879K, paused 2ms+2ms


Eso es lo que aparece. Sigo sin saber porqué revienta.
Responder Con Cita
  #6  
Viejo 26/10/11, 12:47:54
Avatar de hecsagis
hecsagis hecsagis no está en línea
Desarrollador
Mensajes: 266
Compra y venta: (1)
 
Fecha de registro: mar 2009
Mensajes: 266
Modelo de smartphone: Nexus 5
Tu operador: Vodafone
Mencionado: 0 comentarios
Tagged: 0 hilos
Por lo que veo alguno de los parámetros que le pasas a esa función es "null" cuando no lo debería ser:

java.lang.NullPointerException


Mira a ver cual de ellos lo está causando:

canvas.drawBitmap(myBitmap, 2040, 100, null);
Responder Con Cita
  #7  
Viejo 26/10/11, 15:53:51
Avatar de FordPrefect
FordPrefect FordPrefect no está en línea
Usuario muy activo
Mensajes: 992
 
Fecha de registro: jul 2010
Mensajes: 992
Modelo de smartphone: OnePlus 6
Tu operador: R Móvil
Mencionado: 4 comentarios
Tagged: 0 hilos
Hola,

Cita:
Originalmente Escrito por hecsagis Ver Mensaje
Mira a ver cual de ellos lo está causando:
Yo diría que el problema es de concepto:

Bitmap myBitmap=null;
myBitmap.createBitmap(imagen, 400, 400, Bitmap.Config.ARGB_8888);
canvas.drawBitmap(myBitmap, 2040, 100, null);

El problema es que myBitmap es null porque no lees el resultado de myBitMap()

Prueba así:

Bitmap myBitmap= Bitmap.createBitmap(imagen, 400, 400, Bitmap.Config.ARGB_8888);
canvas.drawBitmap(myBitmap, 2040, 100, null);
Responder Con Cita
  #8  
Viejo 26/10/11, 16:39:19
Avatar de bicho_visacoso
bicho_visacoso bicho_visacoso no está en línea
Miembro del foro
Mensajes: 50
 
Fecha de registro: sep 2010
Mensajes: 50
Modelo de smartphone: HTC Legend
Mencionado: 1 comentarios
Tagged: 0 hilos
Efectivamente, muchisimas gracias.

Esto ha funcionado

Bitmap myBitmap= Bitmap.createBitmap(imagen, 400, 400, Bitmap.Config.ARGB_8888);
canvas.drawBitmap(myBitmap, 2040, 100, null);



Un saludo.
David.
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 04:55:11 (GMT +2)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007