Autore Topic: Problema caricamento Bitmap  (Letto 1158 volte)

vincenzodicicco

  • Visitatore
Problema caricamento Bitmap
« il: 04 Agosto 2010, 17:04:22 CEST »
0
Salve a tutti, ho notato una cosa alquanto strana e non riesco proprio ad uscirne fuori.
Ho una drawable di nome "test" a cui devo apportare delle modifiche, e la "trasformo" in un oggetto Bitmap nel seguente modo:
Codice (Java): [Seleziona]
        res = getResources();
        myImage = res.getDrawable(R.drawable.test);
        bmp=((BitmapDrawable)myImage).getBitmap();
ora se sul emulatore, provo a cambiare il colore di un pixel in questo modo, per esempio:
Codice (Java): [Seleziona]
      bmp.setPixel(10,10,Color.GREEN);Tutto va perfettamente, mentre se provo lo stesso codice sul Nexus l'applicazione va in crash, e pare non generi nessun eccezione, anche se però racchiudo il setPixel in un try il pixel non viene colorato ma l'applicazione non si chiude.Qualcuno sa aiutarmi?? grazie a tutti  :-)

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Problema caricamento Bitmap
« Risposta #1 il: 04 Agosto 2010, 18:15:58 CEST »
+1
potresti comunque postare il logcat?
quanto è grande (bytes) l'immagine?

prova a generare la bmp in questo modo:
Codice (Java): [Seleziona]
        Bitmap bmp;
        Options opts=new Options();
        opts.inSampleSize=2;
        bmp=BitmapFactory.decodeResource(getResources(), R.drawable.test, opts);

vincenzodicicco

  • Visitatore
Re:Problema caricamento Bitmap
« Risposta #2 il: 04 Agosto 2010, 18:51:29 CEST »
0
Il problema accadeva sia con immagini di qualsiasi dimensione, ad ogni modo il tuo codice funziona perfettamente, solo che ora ho riscontrato un altro problema, se carico l'immagine con il codice che mi hai proposto tu, se dopo avvio una funzione del tipo:
Codice (Java): [Seleziona]
void prova(Bitmap img){
     Log.v(""+img.getPixel(10,10),"test");
}
e passo come parametro bmp, caricato in precedenza, il codice non va e come se non crea un legame tra img e bmp, neanche con altri metodi tipo getWidth(), ecc.E purtroppo per l'algoritmo che sto sviluppando mi è necessario utilizzare più istanze della stessa immagine. hai qualche consiglio in merito? ecco il log(della parte relativa all'errore, la funzione prova la avvio tramite un menu):


08-04 16:49:31.395: INFO/ActivityManager(60): Displayed activity com.prova/.main: 1912 ms (total 1912 ms)
08-04 16:49:36.165: WARN/KeyCharacterMap(1034): No keyboard for id 0
08-04 16:49:36.165: WARN/KeyCharacterMap(1034): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
08-04 16:49:36.836: DEBUG/AndroidRuntime(1034): Shutting down VM
08-04 16:49:36.836: WARN/dalvikvm(1034): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
08-04 16:49:36.855: ERROR/AndroidRuntime(1034): FATAL EXCEPTION: main
08-04 16:49:36.855: ERROR/AndroidRuntime(1034): java.lang.NullPointerException
08-04 16:49:36.855: ERROR/AndroidRuntime(1034):     at com.prova.main.prova(main.java:68)
08-04 16:49:36.855: ERROR/AndroidRuntime(1034):     at com.prova.main$1.onMenuItemClick(main.java:53)
08-04 16:49:36.855: ERROR/AndroidRuntime(1034):     at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:137)
08-04 16:49:36.855: ERROR/AndroidRuntime(1034):     at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855)
08-04 16:49:36.855: ERROR/AndroidRuntime(1034):     at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:532)
08-04 16:49:36.855: ERROR/AndroidRuntime(1034):     at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122)
08-04 16:49:36.855: ERROR/AndroidRuntime(1034):     at android.view.View$PerformClick.run(View.java:8816)
08-04 16:49:36.855: ERROR/AndroidRuntime(1034):     at android.os.Handler.handleCallback(Handler.java:587)
08-04 16:49:36.855: ERROR/AndroidRuntime(1034):     at android.os.Handler.dispatchMessage(Handler.java:92)
08-04 16:49:36.855: ERROR/AndroidRuntime(1034):     at android.os.Looper.loop(Looper.java:123)
08-04 16:49:36.855: ERROR/AndroidRuntime(1034):     at android.app.ActivityThread.main(ActivityThread.java:4627)
08-04 16:49:36.855: ERROR/AndroidRuntime(1034):     at java.lang.reflect.Method.invokeNative(Native Method)
08-04 16:49:36.855: ERROR/AndroidRuntime(1034):     at java.lang.reflect.Method.invoke(Method.java:521)
08-04 16:49:36.855: ERROR/AndroidRuntime(1034):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
08-04 16:49:36.855: ERROR/AndroidRuntime(1034):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
08-04 16:49:36.855: ERROR/AndroidRuntime(1034):     at dalvik.system.NativeStart.main(Native Method)
08-04 16:49:36.885: WARN/ActivityManager(60):   Force finishing activity com.prova/.main
08-04 16:49:37.435: WARN/ActivityManager(60): Activity pause timeout for HistoryRecord{43f9e248 com.prova/.main}
08-04 16:49:38.865: INFO/Process(1034): Sending signal. PID: 1034 SIG: 9

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Problema caricamento Bitmap
« Risposta #3 il: 04 Agosto 2010, 21:17:53 CEST »
+1
NullPointer in questo caso significa che quello che hai passato alla funzione è null.
e quando tenti di usarlo (es. getWidth) da NullPointerException
ti va di postare i passaggi che esegui prima di chiamare la funzione? (se ti va posta tutto il codice ;) o lo zip)

al limite potrebbe anche essere un problema dell immagine in se, hai provato con un altra immagine?
« Ultima modifica: 04 Agosto 2010, 21:19:51 CEST da Qlimax »

vincenzodicicco

  • Visitatore
Re:Problema caricamento Bitmap
« Risposta #4 il: 04 Agosto 2010, 21:34:33 CEST »
0
Grazie mille, sono stato troppo distratto, infatti ripetevo la dichiarazione di bmp, una generale ed una poco prima che chiamavo la funzione ed ovviamente bmp era "null". Grazie molte, ho realizzato un algoritmo di riconoscimento di oggetti di un determinato colore, seppur lento funziona bene :D appena lo finisco posto l'app sul sito, graziee  :-)