Aller au contenu

Recupérer le "r.drawable" quand on a le Drawable...?


Kricek

Recommended Posts

Salut tout le monde!

Je recherche une combine qui me permettrait de récupérer la valeur du "r.drawable.[...]" ou du moins une instance, un int, à partir d'un Drawable variable que j'obtiens en faisant

Drawable monDrawable = ((ImageView)monImageView).getDrawable();

A moins qu'il n'existe une méthode pour obtenir directement cette donnée depuis l'ImageView?

Lien vers le commentaire
Partager sur d’autres sites

Salut

Ce drawable est stocké dans un des dossiers drawable ?

Si oui, et si tu veux le int tu fais juste

int drawableID = R.drawable.monDrawable;

S'il est stocké ailleurs, il ne sera pas repertorié dans la classe R et n'aura donc pas d'id.

D'ailleurs, la classe Drawable n'a pas de méthode getID(), tout simplement parce qu'un Drawable peut ne pas être une ressource du dossier res. (Enfin, j'emets juste une hypothèse là ^^).

Après j'ai peut-être mal compris ton problème :/ (d'ailleurs, j'ai mal compris l'histoire de drawable variable lol)

Lien vers le commentaire
Partager sur d’autres sites

Désolé pour le double post, mais je crois avoir compris...

En fait, tu affectes un drawable à une imageView à un moment donné et plus tard, tu veux pouvoir récupérer l'ID du drawable que tu as appliqué à ton imageView (dis-moi si c'est pas ça ^^).

Du coup, ce que je ferais (mais je ne peux pas être certain ;) ), je créérais une classe ImageViewWithID (le nom est arbitraire lol) qui hériterait d'ImageView et qui implémenterait un nouvel attribut int ID et une nouvelle méthode :

public void setDrawableWithID(int id){
this.id = id;
this.setImageRessource(id);
}

Bon j'ai rien testé, une fois de plus, c'est de l'hypothèse ;)

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ta réponse Bismuth76!

Tu as bien saisi mon problème (je reconnais que je n'ai pas été très clair... :/ )

Pour éclaircir un peu les choses, ce que j'essaye de mettre en place, c'est un slideshow.

Toutes les X secondes, une image est téléchargée et affectée au background.

Jusque là, je sais faire.

Le hic c'est qu'on m'a demandé d'utiliser le Framework droid4me (je ne sais pas si tu connais, mais peu importe...).

Ce Framework possède une classe ImageDownloader, qui elle même possède une méthode "get" qui vérifie toute seule si l'image est déjà stockée (à un endroit défini dans le Framework et que j'ignore). La méthode "get" de cette classe accepte entre autres les paramètres suivants:

- Une ImageView (dans laquelle l'image sera mise)

- Une String (l'URL de l'image)

- Une instance d'un Objet ImageSpec. (Ce sont les spécificités que nous souhaitons appliquer à l'image. Cet objet reçoit en paramètre deux int (longueur et largeur de l'image) et un int qui correspond à l'id d'une ressource. Cette dernière est utilisée pour choisir une image qui sera affichée pendant le téléchargement ou bien si le téléchargement a eu une erreur, etc...

Donc ce que je pensais faire, c'est de dire "Tu me télécharge l'image n°X, à l'adresse Y, et en attendant (ou si tu rencontres un problème), tu affiches l'image X-1."

Je ne sais pas si c'est plus clair...?

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...