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

Respuesta
 
Herramientas
  #1  
Viejo 24/10/11, 15:47:13
Array

[xs_avatar]
bicho_visacoso bicho_visacoso no está en línea
Miembro del foro
 
Fecha de registro: sep 2010
Mensajes: 50
Modelo de smartphone: HTC Legend

¿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
Array

[xs_avatar]
hecsagis hecsagis no está en línea
Desarrollador
· Votos compra/venta: (1)
 
Fecha de registro: mar 2009
Mensajes: 266
Modelo de smartphone: Nexus 5
Tu operador: Vodafone
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
Array

[xs_avatar]
bicho_visacoso bicho_visacoso no está en línea
Miembro del foro
 
Fecha de registro: sep 2010
Mensajes: 50
Modelo de smartphone: HTC Legend

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
Array

[xs_avatar]
hecsagis hecsagis no está en línea
Desarrollador
· Votos compra/venta: (1)
 
Fecha de registro: mar 2009
Mensajes: 266
Modelo de smartphone: Nexus 5
Tu operador: Vodafone
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
Array

[xs_avatar]
bicho_visacoso bicho_visacoso no está en línea
Miembro del foro
 
Fecha de registro: sep 2010
Mensajes: 50
Modelo de smartphone: HTC Legend

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
Array

[xs_avatar]
hecsagis hecsagis no está en línea
Desarrollador
· Votos compra/venta: (1)
 
Fecha de registro: mar 2009
Mensajes: 266
Modelo de smartphone: Nexus 5
Tu operador: Vodafone
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
Array

[xs_avatar]
FordPrefect FordPrefect no está en línea
Usuario muy activo
 
Fecha de registro: jul 2010
Mensajes: 992
Modelo de smartphone: OnePlus 6
Tu operador: R Móvil
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
Array

[xs_avatar]
bicho_visacoso bicho_visacoso no está en línea
Miembro del foro
 
Fecha de registro: sep 2010
Mensajes: 50
Modelo de smartphone: HTC Legend

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   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android

Herramientas


Hora actual: 13:34:30 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /