Android: ¿Cómo comparar el recurso de una imagen con R.drawable.imagename?
Estoy trabajando en una aplicación de ejemplo en la que necesito obtener el recurso de una vista de imagen en un oyente onClick y compararlo con la fuente de imagen que conozco. Si los recursos son los mismos, quiero lanzar otra intención. El problema que estoy enfrentando ahora es acceder a ImageView (y por lo tanto a su entero de Id de recurso) para comparar con el recurso extraíble.
@Override // should int be final ?? public View getView(final int position, View convertView, ViewGroup parent) { ImageView imageView; if (convertView == null) { // if it's not recycled, initialize some attributes imageView = new ImageView(mContext); imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); imageView.setPadding(8, 8, 8, 8); } else { imageView = (ImageView) convertView; } imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // This is not working and I need to find a way to solve this >> if (((ImageView)v).getResources().getInteger(0) == R.drawable.imageToCompare) { // do nothing } else { // do something }
- Concate JSONArray
- ¿Hay alguna manera de utilizar interfaces funcionales Java 8 en la API de Android por debajo de 24?
- WebRTC AEC en Android
- Forzar la siguiente palabra a una nueva línea si la palabra es demasiado larga para la vista de texto
- Desafortunadamente MyApp se ha detenido. ¿Como puedo resolver esto?
- Cómo identificar el móvil está inactivo?
- E / art: Error al enviar la respuesta al depurador: Canal roto, pero la aplicación todavía se ejecuta
- Excepción de tiempo de ejecución al utilizar la configuración de Android (estoy siguiendo el curso de desarrollo de Android de udacity)
- Descifrar el archivo cifrado AES en C # con java
- BadTokenException: No se puede agregar la ventana
- Lista de navegación de ActionBar - Usa la misma ActionBar en múltiples actividades; Inicializar en un lugar
- Un botón de dos oyentes en java
- Objeto de almacenamiento Robospice que extiende ArrayList en la base de datos a través de Ormlite
No se puede obtener un ID de ImageView
un ImageView
. Pero si lo configura desde el código, también puede almacenarlo en algún lugar, por ejemplo en el campo de etiqueta. Echa un vistazo a la pregunta similar: ¿A quién comparar un fondo de recursos de imágenes TextView con un R.drawable.bg_image para el interruptor .
if(((ImageView)v).getDrawable().getConstantState() == MainActivity.this .getResources().getDrawable(R.drawable.unlock) .getConstantState())) { // Do Something }
La manera apropiada es al usuario setTag()
y getTag
. Supongo que usted está haciendo su propio adaptador.
En el método public View getView(int position, View convertView, ViewGroup parent)
, se establece la etiqueta en Imageview
cuando se añaden otras propiedades.
ImageView temp = (ImageView) v.findViewById(resId); temp.setImageResource(icon); temp.setTag(icon); //drawable unique ID will be my identifier here
Entonces en el onClick
usted compara simplemente View v
con su identificación drawable
. Por ejemplo, quería cambiar la imagen en clic y lo codifiqué de esta manera. Tome nota de cómo también cambio de etiqueta cuando establezco un nuevo dibujable
img.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { if ((Integer)v.getTag() == R.drawable.current_img) { v.setBackgroundResource(R.drawable.new_img); v.setTag(R.drawable.new_img); } } });
- Android: ¿Cómo usar SensorManager.getAltitude (float p0, float p)?
- Cambiar el texto en una pestaña de Android