안드로이드 화면 좌표는 어떻게 작동합니까?


154

나는 안드로이드로 일하고 Animation있는데 안드로이드 좌표계가 매우 혼란 스럽다는 것을 알았으므로 안드로이드에서 좌표가 어떻게 작동하는지에 대한이 질문을하기 위해 여기 있습니다. 하나의보기를 다른보기로 옮기기 위해이 이미지를 따르고 있지만 작동하지 않는 것 같습니다.

영상

답변:


294

여기에 이미지 설명을 입력하십시오

이 이미지는 두 방향 (가로 / 세로)을 나타냅니다.

MaxX 및 MaxY를 얻으려면 계속 읽으십시오.

Android 기기 화면 좌표의 경우 아래 개념이 작동합니다.

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

편집 :-** ** 13보다 오래된 안드로이드 API 레벨을 지원하는 장치의 경우 아래 코드를 사용할 수 있습니다.

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

(x, y) :-

1) (0,0) 은 왼쪽 상단입니다.

2) (maxX, 0) 은 오른쪽 상단입니다

3) (0, maxY) 는 왼쪽 아래 모서리입니다.

4) (maxX, maxY) 는 오른쪽 아래 모서리입니다

여기서 maxX와 maxY는 화면의 최대 높이와 ​​너비를 픽셀 단위로, 위에서 주어진 코드에서 검색했습니다.


View와 함께 있다면 layout_width="1" layout_height="1"왼쪽 상단이 (0,0)이고 오른쪽 하단이 (1, 1)입니까? 그것이 View너비 = 2이고 높이 = 2라는 것을 의미하지 않습니까? 모순.
riwnodennyk

@AAnkit confrim을 할 수 있습니다. 이것은 두 화면 방향 (세로 및 가로) 모두에 유효하며 화면 방향 변경은 (0,0)-> 왼쪽 상단 모서리에 영향을 미칩니다. (maxX, 0)-> 오른쪽 위 모서리 (0, maxY)-> 왼쪽 아래 모서리 (maxX, maxY)-> 오른쪽 아래 모서리
Qadir Hussain

이미지 주셔서 감사합니다. 정말 내 생명을 구했습니다.
Sharl Sherif

19

Android API 레벨 13의 경우 다음을 사용해야합니다.

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

그런 다음 (0,0)은 왼쪽 상단 모서리이고 (maxX, maxY)는 화면의 오른쪽 하단 모서리입니다.

API 13부터 화면 크기에 대한 'getWidth ()'가 사용되지 않습니다.

또한 getwidth ()getHeight ()androidandroid.view.View 클래스의 메소드이므로 Java 클래스가 View 클래스를 확장하면 windowManager 오버 헤드가 없습니다.

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

저것과 같이 쉬운.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.