Ecco il codice:
public class MainActivity extends AppCompatActivity {
ImageView image1,image2,image3;
View.OnTouchListener onTouchListener;
ArrayList lista=new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image1=(ImageView)findViewById(R.id.imageView);
image2=(ImageView)findViewById(R.id.imageView2);
image3=(ImageView)findViewById(R.id.imageView3);
image1.setImageResource(R.drawable.android);
image1.setTag("omino");
image2.setImageResource(R.drawable.cattivik);
image2.setTag("cattivik");
image3.setImageResource(R.drawable.facciadicazzo);
image3.setTag("pupuccio");
lista.add(image1);
lista.add(image2);
lista.add(image3);
Random random=new Random();
int numero=random.nextInt(3);
final ImageView estratta=lista.get(numero);
System.out.println(estratta.getTag());
onTouchListener =new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(v==estratta){
System.out.println("ESATTA");
}
else{
System.out.println("FALSA");
}
return false;
}
};
image3.setOnTouchListener(onTouchListener);
image1.setOnTouchListener(onTouchListener);
image2.setOnTouchListener(onTouchListener);
}
}
Parto da tre ImageView che caricano immagini prese, in questo caso, dalle risorse (ma che nel programma definitivo andranno prese dal database), e le inserisco in un ArrayList di ImageViews.La didascalia è compresa nel loro Tag.
Estraggo a sorte l'indice della ArrayList, e identifico con la variabile "estratta" di tipo ImageView la ImageView corrispondente all'indice estratto a sorte.
Quindi accomuno il listener onTouchListener alle tre ImageView, e se la sorgente dell'evento è quella estratta ottengo un comportamento, mentre se non lo è ottengo un altro comportamento.
Nessun commento:
Posta un commento