Je génère dynamiquement une chaîne de base de données qui porte le même nom d'image dans le drawable
dossier.
Maintenant, je veux définir cette valeur pour une ImageView
utilisation setImageDrawable(R.id.StringGenerated)
dynamique.
Aucune suggestion..
Réponses:
Essaye ça,
Cela renverra l'id du dessinable auquel vous souhaitez accéder ... alors vous pouvez définir l'image dans l'imageview en procédant comme suit
la source
ou
la source
Personnellement, je préfère utiliser la méthode
setImageResource()
comme celle-ci.la source
Les noms de ressources dessinables ne sont pas stockés sous forme de chaînes, vous devrez donc résoudre la chaîne dans la constante entière générée lors de la construction. Vous pouvez utiliser la
Resources
classe pour résoudre la chaîne en cet entier.Cela résout votre chaîne générée en un entier que le
ImageView
peut utiliser pour charger la bonne image.Vous pouvez également utiliser l'ID pour charger
Drawable
manuellement, puis définir l'image à l'aide de ce dessin au lieu de l'ID de ressource.la source
Aussi simple que cette réponse:
la source
Cela fonctionne, au moins dans l'API Android 15
Vous pouvez utiliser setImageResource (), mais la documentation spécifie que «effectue la lecture et le décodage de Bitmap sur le thread d'interface utilisateur, ce qui peut provoquer un hoquet de latence ... envisagez d'utiliser setImageDrawable () ou setImageBitmap ()». comme indiqué par chetto
la source
Toutes les réponses publiées ne s'appliquent pas aujourd'hui. Par exemple, getDrawable () est obsolète. Voici une réponse mise à jour, bravo!
De la méthode documentée
la source
Vous pouvez essayer d'utiliser ce code:
la source
Si vous ne pouvez pas obtenir un objet Resources comme celui-ci dans une classe qui n'est pas une activité, vous devez ajouter la méthode getContext () pour getResources () par exemple
la source
imageView.setImageDrawable(getResources().getDrawable(R.drawable.my_drawable));
la source
Vous pouvez également utiliser quelque chose comme:
imageView.setImageDrawable(ActivityCompat.getDrawable(getContext(), R.drawable.generatedID));
ou en utilisant Picasso:
Picasso.with(getContext()).load(R.drawable.generatedId).into(imageView);
la source
J'ai eu le même problème que vous et j'ai fait ce qui suit pour le résoudre:
la source
Construisez une classe POJO.java et créez des "méthodes constructeur, getter et setter"
Ensuite, configurez les adaptateurs via des ressources dessinables d'image vers CustomAdapter.java
Passez ensuite les références via ActivityClass.java
la source
un morceau de mon projet, tout fonctionne! )
la source
btnImg.SetImageDrawable (GetDrawable (Resource.Drawable.button_round_green));
API 23 Android 6.0
la source
Le fichier «R» ne peut pas être généré au moment de l'exécution de l'application. Vous pouvez utiliser d'autres alternatives telles que l'utilisation
if-else
ouswitch-case
la source
R
nouveau