GetImageResource () Android. es posible?

He fijado una imagen para un ImageView usando el setImageResource(R.drawable.icon1) .

Ahora mi requisito es descubrir cuál es la imagen que se fija para un ImageView y hacer un poco de proceso.

Me gusta

 if (imageView.getImageResource() == R.drawable.icon1) { //do some processing else if (imageView.getImageResource() == R.drawable.icon2) { //do somethign else else //display 

Por lo tanto, me gustaría saber si existe un método (AFAIK, no lo hace) y si no cómo mantener una pista de los recursos que se han establecido para un ImageView .

Gracias. Sana.

Estás asumiendo que debido a que pusiste un entero en, eres capaz de recuperar un entero, y no es así como funciona setImageResource() . Vea ImageView # setImageResource () . Esto es sólo un método de conveniencia para usted: lo que Android está haciendo detrás de las escenas, está buscando el recurso Drawable (en la mayoría de los casos, es un BitmapDrawable, pero podría ser de cualquier tipo), y luego aplicar ese recurso a ImageView como un Objeto de mapa de bits (es decir, sólo datos de imagen: no tiene idea de cuál era su "identificador de recurso" original).

Su mejor solución va a seguir el último identificador de recursos que utilizó:

 imageView.setImageResource(R.drawable.image1); this.mLastResourceId = R.drawable.image1; // ... // Later, when checking the resource: if (this.mLastResourceId == R.drawable.image1) { // Do something } 

Debe poder utilizar la propiedad tag de la siguiente manera:

 imageView.setImageResource(R.drawable.icon1); imageView.setTag(Integer.valueOf(R.drawable.icon1)); // later int drawable = (Integer) imageView.getTag(); switch(drawable) { case R.drawable.icon1: // do_something.... break; case R.drawable.icon2: // do_something.... break; ... } 

Otra alternativa, si es posible, sería subclase el ImageView y almacenar el entero en un conjunto setImageResource ().

 public class MyImageView extends ImageView { int rememberId = -1; @override void setImageResource(int resId){ rememberId = resId; } int getMyResId(){ return rememberId; } } 
 package com.widget; import android.content.Context; import android.util.AttributeSet; import android.widget.ImageButton; /** * custom star type imagebutton that can be obtain the background image resource * id. * * </p> your layout xml resource might be like the following code: <br> * <view class="com.widget.StarButton" <br> * android:id="@+id/starButton" <br> * android:layout_width="wrap_content" <br> * android:layout_height="wrap_content" <br> * android:background="@android:color/background_light" <br> * android:paddingTop="10dp" <br> * android:src="@drawable/star" /> <br> * * @author Jeffen * */ public class StarButton extends ImageButton { private int mLastResourceId = -1; public StarButton(Context context) { super(context); } public StarButton(Context context, AttributeSet attrs) { this(context, attrs, android.R.attr.imageButtonStyle); } public StarButton(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); setFocusable(true); } /** * set image resource and sync image resource id. */ @Override public void setImageResource(int resId) { super.setImageResource(resId); setImageResourceId(resId); } public int getImageResourceId() { return mLastResourceId; } public void setImageResourceId(int resId) { mLastResourceId = resId; } } 

Usted debe ser capaz de utilizar Bundle y establecer las propiedades que usted necesita.

 Intent i = new Intent(); Bundle extras = new Bundle(); i.putExtra("prop", "value"); 
  • Imagen de escala de Android de setImageBitmap
  • Android Dash / edición de línea doted?
  • OnTouch dando extraños puntos de contacto Android
  • ListView grande que contiene imágenes en Android
  • Cómo cargar la imagen del GIF en el marcador de posición de Glide / Picasso / Ion etc
  • Cuando haga clic en un botón, gire la imagen en sentido horario en android
  • Cómo obtener la imagen de url sitio web en imageview en android
  • Visualización de una imagen más grande que la pantalla del dispositivo
  • ImageView rellena el ancho o altura de los padres, pero mantiene la relación de aspecto
  • Eliminar redimensionamiento automático de ImageView
  • Android: imageView.getDrawable () devuelve null
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.