Что означает верхний, левый, правый и нижний в объекте Android Rect

У меня есть проект Android, где я должен заставить яблоки падать. Яблоки окрашены в Rect. Поэтому я создал функцию, которая меняет положение Rect и перерисовывает. Вот моя функция:

private void updateApplesPosition() {
    for(Rect rect:fallingDownFruitsList)
        rect.set(rect.left, rect.top +10, rect.right, rect.bottom +10);
}

У меня проблема: яблоки не падают, а идут справа налево. Чтобы яблоки упали, я изменил код следующим образом:

private void updateApplesPosition() {
    for(Rect rect:fallingDownFruitsList)
        rect.set(rect.left+10, rect.top, rect.right+10, rect.bottom);
}

2 ответа

Решение

Это изображение объяснит вам подробно:

left Координата X левой стороны прямоугольника

top Y координата вершины прямоугольника

правая координата X правой стороны прямоугольника

bottom Координата Y нижней части прямоугольника

Из документов

параметры

left Координата X левой стороны прямоугольника

top Y координата вершины прямоугольника

правая координата X правой стороны прямоугольника

bottom Координата Y нижней части прямоугольника

Добавляем важную информацию.

В документации говорится:

Обратите внимание, что правая и нижняя координаты исключают друг друга.

Итак, если ваш прямоугольник представляет собой один пиксель в позиции 10,10

left = 10: координата X левой стороны прямоугольника.

top = 10: Координата Y вершины прямоугольника = 10.

right = 11: координата X правой стороны прямоугольника плюс один

bottom = 11: координата Y низа прямоугольника плюс один.

Обратите внимание, что правая и нижняя координаты исключают друг друга.

Методы getWidth объявлены как таковые

public final int width() {возврат вправо - влево; }

Здесь он вернет 11 - 10 = 1, как и ожидалось.

https://developer.android.com/reference/android/graphics/Rect

Другие вопросы по тегам