Estoy generando una cadena desde la base de datos de forma dinámica que tiene el mismo nombre de imagen en la drawable
carpeta.
Ahora quiero establecer ese valor para ImageView
usarlo setImageDrawable(R.id.StringGenerated)
dinámicamente.
Alguna sugerencia..
android
android-widget
Arun
fuente
fuente
Respuestas:
Prueba esto,
Esto devolverá la identificación del dibujable al que desea acceder ... luego puede configurar la imagen en la vista de imagen haciendo lo siguiente
fuente
o
fuente
Personalmente, prefiero usar el método
setImageResource()
así.fuente
Los nombres de los recursos que se pueden dibujar no se almacenan como cadenas, por lo que tendrá que resolver la cadena en la constante entera generada durante la compilación. Puede usar la
Resources
clase para resolver la cadena en ese entero.Esto resuelve su cadena generada en el número entero que
ImageView
puede usar para cargar la imagen correcta.Alternativamente, puede usar la identificación para cargar
Drawable
manualmente y luego configurar la imagen usando ese elemento de diseño en lugar de la identificación del recurso.fuente
Tan simple como esta respuesta:
fuente
Esto funciona, al menos en Android API 15
Puede usar setImageResource (), pero la documentación especifica que "lee y decodifica el mapa de bits en el subproceso de la interfaz de usuario, lo que puede causar un problema de latencia ... considere usar setImageDrawable () o setImageBitmap ()". como dijo chetto
fuente
Todas las respuestas publicadas no se aplican hoy. Por ejemplo, getDrawable () está en desuso. Aquí hay una respuesta actualizada, ¡salud!
De método documentado
fuente
Puedes intentar usar este código:
fuente
Si no puede obtener un objeto Resources como este en una clase que no es una actividad, debe agregar el método getContext () para getResources () por ejemplo
fuente
imageView.setImageDrawable(getResources().getDrawable(R.drawable.my_drawable));
fuente
También puedes usar algo como:
imageView.setImageDrawable(ActivityCompat.getDrawable(getContext(), R.drawable.generatedID));
o usando Picasso:
Picasso.with(getContext()).load(R.drawable.generatedId).into(imageView);
fuente
Tuve el mismo problema que tú e hice lo siguiente para solucionarlo:
fuente
Construya una clase POJO.java y cree "métodos constructores, captadores y definidores"
Luego configure los adaptadores a través de recursos de imagen dibujables en CustomAdapter.java
Luego pase las referencias a través de ActivityClass.java
fuente
una pieza de mi proyecto, ¡todo funciona! )
fuente
btnImg.SetImageDrawable (GetDrawable (Resource.Drawable.button_round_green));
API 23 Android 6.0
fuente
El archivo 'R' no se puede generar en el tiempo de ejecución de la aplicación. Puede usar algunas otras alternativas, como usar
if-else
oswitch-case
fuente
R
nuevo