Что означает верхний, левый, правый и нижний в объекте 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