CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: IlMentitore con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: gianpassa con ben 12 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 9 su 9
Discussione:

Problema con metodo onTouchEvent

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Nov 2010
    Messaggi
    5

    Ringraziamenti
    2
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Problema con metodo onTouchEvent

    Ciao a tutti, programmo da poco per android e anche su java e ora ho riscontrato un problema con una applicazione.

    L'applicazione è semplicemente una galleria fatta con una paletta Gallery(con le piccole icone in alto) e un ImageSwitcher dove viene visualizzata l'immagine ingrandita.
    Quello che ho provato a fare è, oltre a far scorrere le icone piccole in alto(e a visualizzarle sotto ingrandite), far cambiare anche l'immagine ingrandita sottostante con uno spostamento a destra o sinistra a dipendenza del movimento del dito dell'utente.

    Per fare questo ho controllato le X di quando il dito tocca e le X di quando il dito rilascia lo schermo e, in base alla differenza tra i due, ho identificato il movimento.

    Il problema è che sull'emulatore questo funziona, mentre caricandolo sul HTC Desire non funziona e appena tocco lo schermo mi esce la finestra per terminare il processo.

    Edit: Forse un problema con il fatto che con il simulatore si riesce a selezionare delle coordinate precise mentre il dito essendo meno preciso tocca un area piu grande a quindi crea imprecisioni? Come fare per ovviare a questo problema ( se è questo e non è un problema di codice)

    Il codice è il seguenteposto solo il Metodo onTouchEvent il resto del file è allegato con anche l'xml)
    codice:
    Grazie!
    File allegati
    Ultima modifica di simoyw; 05-10-11 alle 13:01

  2.  
  3. #2
    zon
    zon non è in linea
    Baby Droid L'avatar di zon


    Registrato dal
    Sep 2011
    Località
    Alessandria
    Messaggi
    40
    Smartphone
    Samsung Galaxy Note 3 SM-N9005

    Ringraziamenti
    27
    Ringraziato 17 volte in 15 Posts
    Talking

    il LogCat che dice di bello?! è uno strumento utile usiamolo!!! :-)
    poi ho notato che spesso se una cosa va sull'emulatore e non nel dispositivo reale spesso è solo dovuto al fatto che sull'emulatore il tuo programma è stato già installato e reinstallato parecchie volte... prova ad aprire il tuo emulatore e disinstallare il tuo programma o a creare una nuova avd... una volta fatto questo rilancia il tuo programma... è facile che crashi ank li... :-) in ogni caso senza logcat è dura trovare al volo il problema!

    Ringrazia con il tasto thanks chi ti è stato utile!

    Se usi una bella app gratis ringrazia lo sviluppatore con un click sulla publicità.

    è solo buona educazione!

  4. #3
    Baby Droid


    Registrato dal
    Nov 2010
    Messaggi
    5

    Ringraziamenti
    2
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ciao Zon scusa il ritardo della mia risposta. Ho messo negli allegati l'immagine del LogCat e il file java con due modifiche che non hanno comunque risolto il problema.
    Grazie per l'attenzione

    Edit: Comunque è vero ho disinstallato l'app sul emulatore e lo rifatta partire da eclipse e effettivamente poi crasha anche lì.
    File allegati
    Ultima modifica di simoyw; 25-10-11 alle 00:26

  5. #4
    zon
    zon non è in linea
    Baby Droid L'avatar di zon


    Registrato dal
    Sep 2011
    Località
    Alessandria
    Messaggi
    40
    Smartphone
    Samsung Galaxy Note 3 SM-N9005

    Ringraziamenti
    27
    Ringraziato 17 volte in 15 Posts
    Predefinito

    ah dimenticavo... il fatto che prima di disintallarlo funziona è dovuto al fatto che probabilmente quella riga era dentro l'onCreate o qualche altro metodo che aveva già girato sull'emulatore e poi correggimi se sbaglio per un qualche motivo l'hai spostato là sopra... avendo già girato il puntatore alla risorsa R.id.quellocheè è già stato istanziato e al secondo avvio dopo la modifica ank se non viene reistanziato è già presente dalle prime volte... cerca di ricordarti cosa modifichi e quando c'è un errore di questo genere 90 su cento stai scorrendo qualcosa di vuoto (come un database o un array che vengono popolati a runtime) che al primo avvio essendo vuoti spannano i puntatori oppure è una modifica che non da problemi solo se il programma ha già girato sul dispositivo...

    Ringrazia con il tasto thanks chi ti è stato utile!

    Se usi una bella app gratis ringrazia lo sviluppatore con un click sulla publicità.

    è solo buona educazione!

  6. #5
    Baby Droid


    Registrato dal
    Nov 2010
    Messaggi
    5

    Ringraziamenti
    2
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da zon Visualizza il messaggio
    ah dimenticavo... il fatto che prima di disintallarlo funziona è dovuto al fatto che probabilmente quella riga era dentro l'onCreate o qualche altro metodo che aveva già girato sull'emulatore e poi correggimi se sbaglio per un qualche motivo l'hai spostato là sopra...
    Non so se ho capito bene comunque si sicuramente ho cambiato alcuni dettagli sia nel metodo onCreate che negli altri metodi che probabilmente il simulatore non rilevava.
    Comuque il fatto che il simulatore crasha, come sull'HTC, è già qualcosa...ma nessuna idea di quale sia l'errore? È la maniera giusta di rilevare il movimento del dito sullo schermo?

  7. #6
    zon
    zon non è in linea
    Baby Droid L'avatar di zon


    Registrato dal
    Sep 2011
    Località
    Alessandria
    Messaggi
    40
    Smartphone
    Samsung Galaxy Note 3 SM-N9005

    Ringraziamenti
    27
    Ringraziato 17 volte in 15 Posts
    Predefinito

    ma noooo!! ieri ti avevo risposto prima di quell'ah dimenticavo... si vede che non ha caricato bn il mio commento... un secondo che te lo riscrivo...

    Ringrazia con il tasto thanks chi ti è stato utile!

    Se usi una bella app gratis ringrazia lo sviluppatore con un click sulla publicità.

    è solo buona educazione!

  8. #7
    zon
    zon non è in linea
    Baby Droid L'avatar di zon


    Registrato dal
    Sep 2011
    Località
    Alessandria
    Messaggi
    40
    Smartphone
    Samsung Galaxy Note 3 SM-N9005

    Ringraziamenti
    27
    Ringraziato 17 volte in 15 Posts
    Predefinito

    final ImageView imageview = (ImageView) findViewById(R.id.imageSwitcher1); il problema è questa riga!!! non è una semplice dichiarazione ma ci fai un operazione ossia il findViewById dove associ ad imageview un puntatore alla risorsa xml in cui è definita... se questa operazione non è un metodo che va in esecuzione questa non viene eseguita ed imageview rimane vuota(tecnicamente parlando il puntatore al suo interno è null)... per questo ti da un nullPointerException non appena tenta di accedere al suo contenuto... metti quella riga dentro all'override del metodo onCreate subito dopo il set content view e salvo altri errori filerà tutto liscio come l'olio...
    il tuo programma diventerà:


    in alternativa se proprio vuoi dichiararla sopra penso che si possa fare:


    tutto chiaro?
    e quello che volevo dirti col secondo post (cioè l'unico che mi ha postato) è che prima funzionava perchè probabilmente avevi già fatto girare una versione prima del tuo programma sull'emulatore dove quel findViewById all'interno di qualche metodo... avendolo fatto girare una volta riutilizza quell'istanza quidi ank quando l'hai tolto dal onCreate e l'hai messo fuori quella riga non veniva eseguita ma tutto funziona bene perchè riutilizza l'istanza che già era stata richiamata... quando tu cancelli poi il il programma e lo lanci per la prima volta non ci sono istanze di quel punatore e non viene creata xk quella riga non viene piu eseguita.... capito?!
    :-) se qlks non è chiaro ci sono altri problemi chiedi pure...
    Ultima modifica di zon; 26-10-11 alle 10:15

    Ringrazia con il tasto thanks chi ti è stato utile!

    Se usi una bella app gratis ringrazia lo sviluppatore con un click sulla publicità.

    è solo buona educazione!

  9. Il seguente Utente ha ringraziato zon per il post:

    simoyw (26-10-11)

  10. #8
    Baby Droid


    Registrato dal
    Nov 2010
    Messaggi
    5

    Ringraziamenti
    2
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Hai ragione! Che scemo! L'ho messo li perchè, visto che avevo bisogno di quel puntatore in altri metodi, lo messo come una dichiarazione nell'intera classe.
    Grazie!
    Edit: avevo un altro errore ma era di sintassi. Grazie!
    Ultima modifica di simoyw; 26-10-11 alle 22:42

  11. #9
    zon
    zon non è in linea
    Baby Droid L'avatar di zon


    Registrato dal
    Sep 2011
    Località
    Alessandria
    Messaggi
    40
    Smartphone
    Samsung Galaxy Note 3 SM-N9005

    Ringraziamenti
    27
    Ringraziato 17 volte in 15 Posts
    Predefinito

    figurati...

    Ringrazia con il tasto thanks chi ti è stato utile!

    Se usi una bella app gratis ringrazia lo sviluppatore con un click sulla publicità.

    è solo buona educazione!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy