RedDoudou Posté(e) 28 mai 2013 Share Posté(e) 28 mai 2013 Bonjour à tous, J'essaye de créer un petit jeu tout simple depuis quelques semaines, et j'ai du mal à comprendre comment résoudre un de mes problèmes. Afin d'afficher un personnage dans une carte, j'affiche sur une surfaceView deux drawables, la carte et le perso. Le problème est que j'ai du mal à les placer l'un par rapport à l'autre à cause du changement du taille de mes deux objets dû à la density de l'écran... Pour le moment je place les images grâce à un setBounds de la classe bitmapDrawable, mais je mets donc des valeurs en pixel. Et pour une meme valeur en pixel, suivant la density, mon perso n'a pas la meme position sur la carte >< J'ai donc (je crois) deux solutions possibles, que je n'arrive pas à mettre en place : -> Bloquer la taille pour que un pixel affiché = un pixel réel. ( je sais que ça apparaitra plus ou moins petit, mais au final j'afficherai une plus grande partie de la carte, donc ça me convient aussi) Mais je ne sais pas comment faire cela ! -> Connaitre la density, pour obtenir le rapport pixels affichés / pixels réels. Mais je ne sais pas exactement comment obtenir cette density. Je crois avoir lu qu'ensuite c'est assez simple, par exemple pour hdpi : 100 px reels = 150 px affichés. C'est bien ça ? Merci beaucoup pour toute réponse que je pourrai avoir ! ^^ Bonne journée Lien vers le commentaire Partager sur d’autres sites More sharing options...
ygort Posté(e) 13 juin 2013 Share Posté(e) 13 juin 2013 Tu peux convertir une taille en DP vers pixels dynamiquement: float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpValue, getResources().getDisplayMetrics()); Sinon tu peux toujours mettre tes dimension dans le fichier xml R.dimens et les récupérer avec getResources().getDimension(R.dimen.myvalue); J'éspère que ça t'aidera. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.