gogui63 Posté(e) 16 septembre 2013 Posté(e) 16 septembre 2013 Bonjour, tout d'abord désolé pour le titre je n'ai pas su trouver plus explicite ... Voila mon problème , je cherche à comparé un string à une valeur donnée, jusqu'à la pas de problème mais à la suite de cette condition je souhaiterai afficher une image spécifique, pour mieux comprendre voila mon code : String str = this.getString(R.string.map); if ( str.equals("o")) { ImageView iv=(ImageView)findViewById(R.id.imageView1); iv.setImageResource(R.drawable.image1); } else if(str.equals("x") { ImageView iv2=(ImageView)findViewById(R.id.imageView2); iv2.setImageResource(R.drawable.image2); } Tout ça pour créer une map pour un jeu en alignant les .png selon un chaine de caractère,où chaque caractère représentera une image vous pensez que c'est possible ? Est ce une bonne méthode pour générer une map à partir d'une chaine de caractère ? Merci d'avance.
Sporniket Posté(e) 17 septembre 2013 Posté(e) 17 septembre 2013 Je pense qu'au préalable, tu peux préparer : une liste d'ImageView, initialisée en récupérant toutes tes image view dans l'ordre que tu veux. List<ImageView> myImageViews = new ArrayList<ImageView>(10) ; //par exemple myImageViews.add((ImageView)findViewById(R.id.imageView1)); myImageViews.add((ImageView)findViewById(R.id.imageView2)); //etc... Une map associant un caractère à une ressource image (R.drawable.xxx), initialisé comme tu le souhaite (au pire une série de put en dur) myMap.put("a", R.drawable.image1) myMap.put("b", R.drawable.image13) // c'est pas forcément des id qui se suivent... //etc... Ensuite, tu parcours ta chaîne de caractères et ta liste en parallèle, et pour chaque caractère, tu récupère la resource image de la map.
Bismuth76 Posté(e) 9 octobre 2013 Posté(e) 9 octobre 2013 Une autre solution serait de définir la liste d'image en xml à l'aide d'une levelList : http://developer.android.com/guide/topics/resources/drawable-resource.html#LevelList Cela permet de n'associer qu'une ressource (la liste de drawables) puis de changer l'image à afficher en faisant un setLevel(); Voilà, en espérant que ça t'aide ;)
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.