Dynamiquement des images à partir de ressources/drawable
J'essaie de mettre des images différentes (.jpg , .png) de façon dynamique dans un ListView
de res/drawable
.
Les noms à partir des images-je obtenir à partir d'une base de données.
Les images elles-mêmes sont dans le res/drawable
dossier.
C'est ce que j'ai déjà, Avec une erreur 😀
Chaîne imgName; --> Il y a les img noms que j'ai besoin de la base de données
Drawable drawable;
drawable = Class.appContext.getResources().getDrawable(Class.appContext.getResources().getIdentifier("com.example.test:drawable/"+imgName,null,null));
Puis-je obtenir ce dans un ArrayList
pour chaque image dans la base de données(+- 200 images):
ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> map = new HashMap<String, Object>();
map = new HashMap<String, Object>();
map.put("img",drawable);
map.put("text", "some text");
list.add(map);
Maintenant, je RETOUR la liste;
Dans la Classe où j'appelle :
listReceive = Class.getImages(appContext);
listSetup = new SimpleAdapter(this, listReceive, R.layout.row,
new String[] {"img", "text"}, new int[] {R.id.IMG_CELL, R.id.TEXT_CELL});
lvList.setAdapter(listSetup);
XML ligne est un ImageView
et un TextView
.
Système.:resolveUri échoué sur la mauvaise
bitmap uri:
android.drawable.bitmapDrawable@405739
resolveUri échoué sur la mauvaise image bitmap uri:
android.drawable.bitmapDrawable@405639
resolveUri échoué sur la mauvaise image bitmap uri:
android.drawable.bitmapDrawable@405959
resolveUri échoué sur la mauvaise image bitmap uri:
android.drawable.bitmapDrawable@405677...
... ...
Je l'ai eu quand j'images enregistrées en local ou SDcard mémoire, et ensuite mettre le chemin à l'intérieur de la liste de tableaux comme:
map.put("img","/data/data/com.example.test/images/" + imgName);
Je ne peux pas utiliser cela parce que j'ai besoin de copier des images à partir res/drawable
sur locaux ou SD.Cela prend 2 fois la quantité de mémoire. ne peut pas avoir que des.
Il doit y avoir un moyen d'obtenir des images dynamiquement à partir de la drawable.
Quelqu'un sait ce que je suis en manque ici?
Merci.
OriginalL'auteur user601302 | 2011-02-03
Vous devez vous connecter pour publier un commentaire.
La SimpleAdapter attend un entier ou une chaîne de caractères qui spécifie une ressource ou une image URI:
Je pense que nous devrions utiliser setViewBinder de fournir un ViewBinder pour la
SimpleAdapter
pour gérer la liaison de laDrawable
données à laImageView
. Fondamentalement, la setViewValue() méthode doit retourner false, sauf si elle est appelée à votre image. Lorsqu'elle est appelée pour votre affichage de l'image, la méthode doit définir les données de la vue et de retourner la valeur true. La valeur de retour indique si le ViewBinder a été en mesure de définir la vue ou si l'adaptateur doit essayer de lier les données par l'intermédiaire de son comportement par défaut.Peut-être quelque chose comme:
J'ai fait un chose de similaire avec un SimpleCursorAdapter et ses ViewBinder.
un plaisir de vous aider
merci beaucoup pour votre explication sur ce setViewValue doit retourner!
Je suis heureux que ma réponse a été utile. Merci pour les commentaires.
g8 réponse Bert ...a fonctionné pour moi......
OriginalL'auteur Bert F
La simple adaptateur attend Chaîne dans la carte. Mais votre carte contient un drawable pour la touche "img".
Au lieu d'essayer d'étendre le BaseAdapter classe. Remplacer la méthode getView puis régler manuellement la drawable à l'imageview et le texte de textview.
Une autre pensée, il pourrait ne pas être une bonne idée de garder tous les drawable dans la mémoire. Plutôt trouver le drawable dynamiquement pendant le rendu de cette ligne particulière de la liste
OriginalL'auteur pankajagarwal
Cette méthode ou de la façon dont fonctionne aussi - si quelqu'un est intéressé toujours
OriginalL'auteur VikramV