![]() |
|
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 |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
||||
|
||||
¿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 |
|
#3
|
||||
|
||||
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... ![]() |
#4
|
||||
|
||||
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 |
#5
|
||||
|
||||
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. ![]() |
#6
|
||||
|
||||
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); |
#7
|
||||
|
||||
Hola,
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); |
#8
|
||||
|
||||
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. |
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 11:55:36 (GMT +2)
HTCMania: líderes desde el 2007