2012-07-14 25 views
111

Estoy trabajando con Android Animation y he encontrado que el sistema de coordenadas de Android es bastante confuso, así que estoy aquí para hacer esta pregunta sobre cómo funcionan las coordenadas en Android. Estoy siguiendo esta imagen para mover una vista a otra, pero parece que no está funcionando:¿Cómo funcionan las coordenadas de la pantalla de Android?

image

Respuesta

219

enter image description here

Esta imagen presenta tanto en orientación (Horizontal/Vertical)

Para llegar MaxX y MaxY, sigue leyendo.

Para las coordenadas de la pantalla del dispositivo Android, debajo del concepto funcionará.

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

EDIT: - ** ** para los dispositivos que soportan el nivel Android API mayores de 13. Puede utilizar a continuación código.

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

(x, y): -

1) (0,0) es la esquina superior izquierda.

2) (maxX, 0) es la esquina superior derecha

3) (0, maxY) es inferior esquina izquierda

4) (maxX, maxY) es inferior derecha esquina

aquí maxX y maxY son la altura y el ancho máximos de la pantalla en píxeles, que hemos recuperado anteriormente en el código dado.

+2

Este método es thr desde el nivel del API 1 ... – AAnkit

+0

Si tenemos el 'View' con layout_width = layout_height' "1" = "1" '¿significaría que la parte superior izquierda es (0,0) y la inferior derecha es (1, 1)? ¿No querría eso decir que 'View''s width = 2 y height = 2? Contradicción. – riwnodennyk

+0

@AAkit puede confrim, esto es válido para ambas orientaciones de pantalla (vertical y horizontal), la pantalla de cambio afecta a la orientación en (0,0) -> esquina superior izquierda. (maxX, 0) -> esquina superior derecha (0, maxY) -> esquina inferior izquierda (maxX, maxY) -> esquina inferior derecha –

16

Para el nivel API de Android 13 y hay que usar esto:

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

Entonces (0,0) es la esquina superior izquierda y (maxX, maxY) es esquina inferior derecha de la pantalla.

El 'getWidth()' para el tamaño de la pantalla está obsoleta desde la API 13

Cuestiones relacionadas