CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: Varioflex con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: carotix con ben 9 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 25 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 2 su 2
Discussione:

gestione OnTouchListener

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
    May 2012
    Messaggi
    3

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Angry

    gestione OnTouchListener

    ciao
    sono davanti a un blocco che nn riesco a superare.
    Sto sviluppando un'applicazione android e nn mi funziona il seguente metodo
    premetto la variabile test é una bitmap e x e y vengono aggiornati a ogni tocco dello schermo nel metodo onTouch(View v, MotionEvent event)
    codice:
    		public void run() {
    			// TODO Auto-generated method stub
    			Random position = new Random();
    			Thread tempo = new Thread();
    			int randomPosX = 0;
    			int randomPosY = 0;
    			while(isRunning){
    				if(!ourHolder.getSurface().isValid()){
    					continue;
    				}
    				Canvas canvas = ourHolder.lockCanvas();
    				canvas.drawRGB(02, 150, 150);
    				
    					randomPosX = position.nextInt(canvas.getWidth());
    					randomPosY = position.nextInt(canvas.getHeight());
    					
    					
    					canvas.drawBitmap(test,randomPosX,randomPosY,null);
    					
    					try {
    						tempo.sleep(3000);
    					} catch (InterruptedException e) {
    						// TODO Auto-generated catch block
    						e.printStackTrace();
    					}
    					
    					if((x >randomPosX && x <randomPosXtest.getWidth()) && (y>randomPosY && y<randomPosY+test.getWidth)){
    					
    						canvas.drawRGB(02, 150, 0);	
    					}
    					
    					
    					
    				ourHolder.unlockCanvasAndPost(canvas);
    				
    			}
    			
    		}
    in pratica vorrei che se l'utente clicca un punto dello spazio occupato dalla bitmap cambi il colore della canvas
    questo metodo non funziona e non mi stupisco dato che è la mia prima app ma la cosa curiosa è che questa variante
    codice:
    public void run() {
    			// TODO Auto-generated method stub
    			Random position = new Random();
    			Thread tempo = new Thread();
    			float randomPosX = 0;
    			float randomPosY = 0;
    			while(isRunning){
    				if(!ourHolder.getSurface().isValid()){
    					continue;
    				}
    				Canvas canvas = ourHolder.lockCanvas();
    				canvas.drawRGB(02, 150, 150);
    				
    					randomPosX = position.nextInt(canvas.getWidth());
    					randomPosY = position.nextInt(canvas.getHeight());
    					
    					
    					canvas.drawBitmap(test,100,100,null);
    					
    					try {
    						tempo.sleep(3000);
    					} catch (InterruptedException e) {
    						// TODO Auto-generated catch block
    						e.printStackTrace();
    					}
    					if((x>100 && x<150) && (y >100 && y<150)){
    						canvas.drawRGB(02, 150, 0);	
    					}
    					
    					
    					
    				ourHolder.unlockCanvasAndPost(canvas);
    				
    			}
    			
    		}
    nella quale la bitmap viene stampata in un punto preciso (100,100) e non più casuale, e quindi conoscendone la posizione posso usare ((x>100 && x<150) && (y >100 && y<150)) invece di ((x >randomPosX && x <randomPosXtest.getWidth()) && (y>randomPosY && y<randomPosY+test.getWidth)) come condizione dell'if per vedere dove è caduto il tocco dell'utente, funziona tutto perfettamente..
    npon capisco xke.. alla fine sostituisco dei valori numerici con delle variabili che comunque contengono interi giusto??
    Spero di essere stato chiaro

  2.  
  3. #2
    Androidiani Power User L'avatar di ZiCkY


    Registrato dal
    Mar 2009
    Messaggi
    28,510

    Ringraziamenti
    108
    Ringraziato 5,799 volte in 3,998 Posts
    Predefinito

    Sposto in una sezione Più indicata...

    inviato dal mio iPhone 4s Bianco con ics cyano

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