Comment fonctionnent les coordonnées d'écran Android?

154

Je travaille avec Android Animationet j'ai trouvé le système de coordonnées Android assez déroutant, je suis donc ici pour poser cette question sur le fonctionnement des coordonnées dans Android. Je suis cette image pour déplacer une vue vers une autre mais il semble que cela ne fonctionne pas:

image

Yasir Khan
la source

Réponses:

294

entrez la description de l'image ici

Cette image présente à la fois l'orientation (Paysage / Portrait)

Pour obtenir MaxX et MaxY, lisez la suite.

Pour les coordonnées d'écran de l'appareil Android, le concept ci-dessous fonctionnera.

Display mdisp = getWindowManager().getDefaultDisplay();
Point mdispSize = new Point();
mdisp.getSize(mdispSize);
int maxX = mdispSize.x; 
int maxY = mdispSize.y;

EDIT: - ** ** pour les appareils prenant en charge le niveau d'API Android plus ancien que 13. Peut utiliser le code ci-dessous.

    Display mdisp = getWindowManager().getDefaultDisplay();
    int maxX= mdisp.getWidth();
    int maxY= mdisp.getHeight();

(x, y): -

1) (0,0) est le coin supérieur gauche.

2) (maxX, 0) est le coin supérieur droit

3) (0, maxY) est le coin inférieur gauche

4) (maxX, maxY) est le coin inférieur droit

ici maxX et maxY sont la hauteur et la largeur maximales de l'écran en pixels, que nous avons récupérées dans le code ci-dessus.

AAnkit
la source
Si nous avons le Viewavec layout_width="1" layout_height="1", cela signifierait-il que le haut à gauche est (0,0) et le bas à droite est (1, 1)? Cela ne veut-il pas dire que Viewla largeur = 2 et la hauteur = 2? Contradiction.
riwnodennyk
@AAnkit pouvez-vous s'il vous plaît confirmer, ceci est valable pour les deux orientations d'écran (Portrait et Paysage), le changement d'orientation de l'écran affecte-t-il (0,0) -> coin supérieur gauche. (maxX, 0) -> coin supérieur droit (0, maxY) -> coin inférieur gauche (maxX, maxY) -> coin inférieur droit
Qadir Hussain
Merci beaucoup pour l'image. ça m'a vraiment sauvé la vie.
Sharl Sherif le
19

Pour le niveau d'API Android 13 et vous devez utiliser ceci:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int maxX = size.x; 
int maxY = size.y;

Alors (0,0) est le coin supérieur gauche et (maxX, maxY) est le coin inférieur droit de l'écran.

Le 'getWidth ()' pour la taille de l'écran est obsolète depuis l'API 13

De plus getwidth () et getHeight () sont des méthodes de android.view.View classe android.So lorsque votre classe java étend Voir la classe il n'y a pas de frais généraux WINDOWMANAGER.

          int maxX=getwidht();
          int maxY=getHeight();

aussi simple que cela.

vids
la source
3

Cette image supprimera la confusion de tout le monde, espérons-le, qui est recueillie à partir de .

Coordonnées d'écran Android

Gk Mohammad Emon
la source