Як працюють координати екрану Android?


154

Я працюю з Android, Animationі я визнав систему координат Android дуже заплутаною, тому я тут, щоб задати це питання про те, як працюють координати в Android. Я стежу за цим зображенням, щоб перемістити один погляд на інший, але, здається, він не працює:

зображення

Відповіді:


294

введіть тут опис зображення

На цьому зображенні представлені обидві орієнтації (Пейзаж / Портрет)

Щоб отримати MaxX та MaxY, читайте далі.

Для координат екрана пристрою Android нижче працює концепція.

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

EDIT: - ** ** для пристроїв, що підтримують андроїд api-рівень старше 13 років. Можливо використовувати нижче код.

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

(х, у): -

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? Протиріччя.
riwnodennikk

@AAnkit, будь ласка, будь ласка, це справедливо для обох орієнтацій екрана (Портрет і Пейзаж), чи зміна орієнтації екрана впливає на (0,0) -> верхній лівий кут. (maxX, 0) -> верхній правий кут (0, maxY) -> лівий нижній кут (maxX, maxY) -> правий нижній кут
Кадір Хуссейн

Дуже дякую за образ. це дійсно врятувало мені життя.
Шарль Шериф

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) - нижній правий кут екрана.

'GetWidth ()' для розміру екрана застаріло з API 13

Крім того, getwidth () та getHeight () - це методи android.view.View класу в android.Таким чином, коли ваш клас java розширюється Перегляд класу, немає накладних витрат windowManager.

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

так просто.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.