Como funcionam as coordenadas da tela do Android?

154

Estou trabalhando com o Android Animatione achei o sistema de coordenadas do Android bastante confuso, por isso estou aqui para fazer esta pergunta sobre como as coordenadas funcionam no Android. Estou seguindo esta imagem para mover uma visualização para outra, mas parece que não está funcionando:

imagem

Yasir Khan
fonte

Respostas:

294

insira a descrição da imagem aqui

Esta imagem apresenta as duas orientações (paisagem / retrato)

Para obter MaxX e MaxY, continue lendo.

Para as coordenadas da tela do dispositivo Android, o conceito abaixo funcionará.

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

EDIT: - ** ** para dispositivos que suportam o nível da API Android com mais de 13. Pode usar o código abaixo.

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

(x, y): -

1) (0,0) é o canto superior esquerdo.

2) (maxX, 0) é o canto superior direito

3) (0, maxY) é o canto inferior esquerdo

4) (maxX, maxY) é o canto inferior direito

aqui maxX e maxY são a altura e a largura máximas da tela em pixels, as quais recuperamos acima no código fornecido.

AAnkit
fonte
Se tivermos o Viewcom layout_width="1" layout_height="1", isso significa que o canto superior esquerdo é (0,0) e o canto inferior direito é (1, 1)? Isso não significaria que Viewlargura = 2 e altura = 2? Contradição.
riwnodennyk 12/02
@AAnkit, por favor, confronte, isso é válido para as duas orientações da tela (Retrato e Paisagem), as alterações na orientação da tela afetam (0,0) -> canto superior esquerdo. (maxX, 0) -> canto superior direito (0, Maxy) -> canto inferior esquerdo (maxX, Maxy) -> canto inferior direito
Qadir Hussain
Muito obrigado pela imagem. realmente salvou minha vida.
Sharl Sherif
19

Para a API 13 do Android e você precisa usar o seguinte:

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

Então (0,0) é o canto superior esquerdo e (maxX, maxY) é o canto inferior direito da tela.

O 'getWidth ()' para o tamanho da tela está obsoleto desde a API 13

Além disso getWidth () e getHeight () são métodos de android.view.View classe em android.So quando sua classe java estende Ver classe não há despesas gerais de janelas.

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

tão simples como isso.

vids
fonte
3

Esperamos que esta imagem remova a confusão de todos que é coletada a partir daí .

Coordenada da tela do Android

Gk Mohammad Emon
fonte