Как работают координаты экрана 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;

РЕДАКТИРОВАТЬ: - ** ** для устройств, поддерживающих Android 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 - максимальная высота и ширина экрана в пикселях, которые мы получили в приведенном выше коде.


Если у нас есть Viewwith layout_width="1" layout_height="1", значит ли это, что слева вверху (0,0), а справа внизу (1, 1)? Разве это не значит, что Viewширина = 2 и высота = 2? Противоречие.
riwnodennyk

@Ankit, пожалуйста, подтвердите, это действительно для обеих ориентаций экрана (книжная и альбомная), влияет ли изменение ориентации экрана на (0,0) -> верхний левый угол. (maxX, 0) -> верхний правый угол (0, maxY) -> нижний левый угол (maxX, maxY) -> нижний правый угол
Qadir Hussain

Большое спасибо за изображение. это действительно спасло мою жизнь.
Шарл Шериф

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.So , когда ваш класс Java расширяет класс View нет WindowManager накладных расходов.

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

так просто, как, что.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.