2 votes

Icônes aux coordonnées exactes de l'écran dans Android

Je veux définir la carte d'une ville comme fond d'écran de mon application et je veux placer des icônes au-dessus d'elle à des coordonnées connues.

J'ai réussi à le réaliser sur une résolution de 320x480 en créant une classe qui étend une SurfaceView et implémente Runnable ; la carte et les icônes sont dessinées à la méthode run() (à travers un canvas.drawBitmap()).

Évidemment, tout se passe dans un énorme désordre lorsque j'essaie d'exécuter mon application sur une résolution d'écran différente.

Pouvez-vous me donner quelques conseils sur la façon de dessiner l'image de fond et de faire en sorte que les icônes gardent leur "place" quelle que soit la résolution de l'écran ?

Merci beaucoup !

0voto

Risch Points 317

Vous devez mettre en œuvre des pixels indépendants de la densité.

private final float dpScale = 
    getContext().getResources().getDisplayMetrics().density;
private final float dp = (onePixel * dpScale +0.5f);   

mettez ceci en haut de votre code de dessin. et chaque fois que vous dessinez quelque chose, multipliez vos coordonnées x et y avec dp. exemple :

canvas.drawText("hello world", 100*dp, 150*dp);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X