Я постараюсь кратко рассказать о проекте Android Studio. , java.
У меня есть сетка, фигура, которая занимает 5 ячеек сетки, состоящих из 5 изображений.
Форма является дочерним элементом сетки, она определяется как список на основе формула, которая включает строки смещения и столбцы относительно одного изображения (поэтому все остальные 4 изображения выровнены по определенному образцу относительно первого изображения).
Смотрите прикрепленное изображение (исходное положение, поворот не применяется).
Все изображения имеют DragAndDropListener, поэтому они будут вести себя как один объект.
Я применил перетаскивание и привязку к фигуре, она ограничена границами сетки.
А вот и мой проблема, я хочу применить поворот на 90 градусов к фигуре.
Поскольку начальный размер занимает 2x4 (строки x столбцы), первое вращение изменит ее размер на 4x2 (строки x столбцы).
По сути, правила, которые я применил в ACTION_MOVE (перетаскивание), не будут применяться, если фигура повернута.
Если я помещу фигуру в контейнер, это упростило бы правила, поскольку у меня было бы два размера: 2x4 или 4x2.
Но если я помещу его в контейнер, остальные 3 ячейки вокруг фигуры также будут доступны для перетаскивания, и я этого не делаю. не хочу этого.
Наличие 4 позиций/поворотов (0/90/180/270 градусов) означает, что мне придется определить правила для каждого из них, и что это своего рода статика, не совсем оптимизация (пока мне удалось определить только 2 из них).
Я попытался определить верхнюю/левую/нижнюю/правую границы сетки на основе идентификаторов ячеек (как общее правило, которое можно применить к любой форме и положению), но безуспешно.
Мой вопрос: как я могу ограничить движение фигуры внутри границ сетки на основе отображаемых ячеек/формы, независимо от того, повернута она или нет, более динамичный правило.
Любое предложение мне очень поможет, поскольку я застрял в этом вопросе уже несколько недель.
Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/793 ... boundaries
Мобильная версия