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