Obtener Id de recurso de ImageView
Estoy tratando de desarrollar un pequeño juego.
Tengo un ViewFlipper que tiene 50 imágenes (frecuencia aleatoria de 4 imágenes) en ImageViews. Entonces tengo 4 botones con las mismas 4 imágenes que pueden aparecer en el ViewFlipper.
- Cómo cambiar el atributo 'android: autoStart' de ViewFlipper en RemoteViews mediante programación?
- Hacer carrusel con ViewFlipper o ViewPager
- ¿La mejor práctica para viewflipper que contiene 10 linearlayouts?
- Scrollview no desliza cuando es demasiado corto para desplazarse
- Android Cómo llamar a OnFling cuando Swiping en cualquier lugar de la actividad no sólo en el ViewFlipper
La tarea es hacer clic en el botón derecho cuando aparezca la imagen correcta. (Cuando aparezca la imagen 1 el botón 1 tiene que ser presionado y así sucesivamente)
Mi problema es que no sé cómo obtener el ID de ImageView mostrado.
flipper.getCurrentView().getId()
Me da "-1" como Id. Pero quiero tener el Id de "R.drawable.pic1"
Mi código hasta ahora:
Mi Loader-Method:
protected void loadPicturesIntoFlipper() { Random generator = new Random(); pictures = new ArrayList(); for(int i = 0; i < 50;i++){ int number = generator.nextInt(4) + 1; if(number == 1){ pic = R.drawable.pic1; } if(number == 2){ pic = R.drawable.pic2; } if(number == 3){ pic = R.drawable.pic3; } if(number == 4){ pic = R.drawable.pic4; } pictures.add(pic); } for(int i=0;i<pictures.size();i++) { setFlipperImage((Integer) pictures.get(i)); } }
Mi método de inserción:
private void setFlipperImage(int res) { image = new ImageView(getApplicationContext()); image.setBackgroundResource(res); flipper.addView(image); }
Mi método de verificación:
protected void check(int number, int id) { int code = 0;; if(number == 1){ code = R.drawable.button_tip_finder; } if(number == 2){ code = R.drawable.button_about_us; } if(number == 3){ code = R.drawable.button_power_calculator; } if(number == 4){ code = R.drawable.button_powerpedia; } if(code == id){ test.setText(""+id); } else{ test.setText(""+id); } }
Lo llamo así:
button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { check(1,flipper.getCurrentView().getId()); flipper.showNext(); } });
- ¿Cómo obtener las flechas derecha / izquierda en Actividad para indicar más pantallas a la derecha / izquierda?
- Android - inAnimation funciona para ViewFlipper pero outAnimation no
- ¿Cómo implementar un evento Swipe para ver Flipper en un ViewPager?
- Desplácese entre vistas Android
- Cómo deslizar imágenes en ViewFlipper o ViewPager
- Problema de superposición de texto en ViewFlipper ..
- Error de cursor Android: "asegúrese de que el cursor se inicialice correctamente antes de acceder a los datos de él ..."
- ViewFlipper vs Fragments
Hazlo asi:
private void setFlipperImage(int res) { image = new ImageView(getApplicationContext()); image.setBackgroundResource(res); image.setTag(res); //<------ flipper.addView(image); }
y entonces:
button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { check(1,(Integer)flipper.getCurrentView().getTag());//<---- flipper.showNext(); } });
Utilice BTW en todo su código por favor, por ejemplo:
if(number == 1){ pic = R.drawable.pic1; } else if(number == 2){ pic = R.drawable.pic2; } else if(number == 3){ pic = R.drawable.pic3; }
Que éste te ayude,
int icon = getResources().getIdentifier([YOUR IMAGE NAME], "drawable", getPackageName());