2012-07-14 22 views
111

Pracuję z Androidem Animation i znalazłem system współrzędnych Androida jako dość mylące, dlatego jestem tutaj, aby zadać to pytanie o to, jak współrzędne działają w systemie Android. Śledzę to zdjęcie w ruchu jeden widok na inny, ale wydaje się, że nie działa:Jak działają współrzędne ekranu Android?

image

Odpowiedz

219

enter image description here

Obraz ten przedstawia zarówno orientację (pozioma/pionowa)

Aby dostać MaxX i MaxY, czytaj dalej.

Dla współrzędnych ekranu urządzenia z systemem Android, poniżej koncepcji zadziała.

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

EDIT: - ** ** dla urządzeń wspierających android poziom api starsze niż 13 lat mogą korzystać z poniżej kodu.

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

(x, y) -

1) (0,0) jest górny lewy róg.

2) (Maxx 0) się w prawym górnym rogu

3) (0, maxy) się w lewym dolnym rogu

4) (Maxx maxy) jest dolny prawy róg

tutaj maxX i maxY to maksymalna wysokość i szerokość ekranu w pikselach, które uzyskaliśmy w powyższym kodzie.

+2

Metoda ta jest Thr z poziomu API 1 ... – AAnkit

+0

Jeśli mamy się z '' layout_width View' = "1" layout_height = "1" "Czy oznaczałoby to, że lewy górny jest (0,0) a dolny prawy to (1, 1)? Czy nie oznacza to, że "Szerokość widoku = 2 i wysokość = 2? Sprzeczność. – riwnodennyk

+0

@AAnkit, możesz wyrazić zgodę, dotyczy to zarówno orientacji ekranu (Portret i Krajobraz), wpływa na zmianę orientacji ekranu na (0,0) -> lewy górny róg. (maxX, 0) -> prawy górny róg (0, maxY) -> dolny lewy róg (maxX, maxY) -> prawy dolny róg –

16

Dla Android API poziomie 13 i trzeba to wykorzystać:

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

Następnie (0,0) jest lewym górnym rogu i (maxX, maxy) to prawy dolny róg ekranu.

do 'getWidth()' dla rozmiaru ekranu jest przestarzała, ponieważ API 13