Aller au contenu

[Problème] Taille variable de drawable et density


RedDoudou

Recommended Posts

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

  • 3 weeks later...

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

Archivé

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

×
×
  • Créer...