Класс AbsoluteLayout (и содержащий класс LayoutParams с x и y свойствами) устарел. Хотя можно катить мой собственный класс, который расширяет ViewGroup и позволяет мне контролировать абсолютное позиционирование дочерних представлений - это лучший подход для спрайтов?
Прежде всего, я сделал предположение, что перемещение ImageViews путем изменения их позиции x и y будет более эффективным, чем перерисовка растровых изображений внутри SurfaceView. Правильно ли это предположение?
Мой более широкий вопрос на самом деле: какой лучший подход для анимации спрайтов в Android?
Я нахожу, что перерисовка растровых изображений в SurfaceView будет более жизнеспособной, если ваша анимация состоит всего из нескольких кадров. Это зависит от того, какую анимацию вы делаете.
Чтобы ответить на первый вопрос: вместо FrameLayout. Это самый простой из всех менеджеров макетов и просто удаляет всех детей в верхний левый угол. Вы можете перевести их с помощью функций offsetTopAndBottom()
и offsetLeftAndRight()
, определенных в View
. Кроме того, параметры компоновки для FrameLayout поддерживают настройки полей. Droid-Fu использует эту технику для размещения липких представлений на экране. Здесь исходный код.
Что касается вашего другого вопроса, я предполагаю, что вы имеете в виду анимацию, основанную на ключевых кадрах. Фрагмент анимации описан здесь.