Фрагменты изображений для анимации Android и совместимость с устройствами

#android

#Android

Вопрос:

Я создаю приложение, которое в одном представлении имеет изображение слона. этому слону нужно анимировать различные части своего тела, такие как глаза, хобот, разбрызгивание воды, а также движения фона / горизонта. Я кратко попробовал расположить каждый элемент (глаз, туловище и т.д.) В RelativeLayout , Используя поля и относительные положения, чтобы изображение выглядело правильно.

Когда я меняю размер экрана с помощью редактора макетов eclipse, все становится не на свои места. Я читал, что использование RelativeLayout с полями и относительными позициями будет лучшей альтернативой AbsoluteLayout , но, похоже, я не могу разместить каждый фрагмент в нужном месте, сохраняя некоторую совместимость устройств.

Каков наилучший способ позиционирования фрагментов изображения для завершения полного изображения, который также позволит мне анимировать / переводить / поворачивать / etc Каждый фрагмент и поддерживать большое разнообразие устройств?

Я подумал, что, возможно, использование OpenGL или Canvas может быть способом, которым это делается должным образом, но я не вижу, как это решило бы проблемы, о которых я упоминал.

Я создал версию этого приложения для iOS, и настроить его было чрезвычайно просто. Я не совсем понимаю, как приложения выстраивают спрайты для создания сцены, совместимой с большим разнообразием размеров / плотностей экрана.

Ответ №1:

Вам нужно будет масштабировать элементы вашего большого изображения, чтобы соответствовать высокой, средней и низкой плотности экрана.

Для этого вам нужно будет изменить размер каждого набора элементов и скопировать их в отдельные папки для рисования: /res

возможность рисования -hdpi

возможность рисования-ldpi

возможность рисования-mdpi

также вы можете создать специальный макет для каждой категории экрана, если это необходимо, но сначала попробуйте просто масштабировать изображения, скопировать их в папки и запустить свое приложение.

Хорошая ссылка, чтобы посмотреть также: http://developer.android.com/guide/practices/screens_support.html

P.S: убедитесь, что в ваших макетах в качестве единицы измерения используется dp, а не pix, также использование absolutelayout не является хорошим выбором, оно устарело.

Комментарии:

1. проблемы с выравниванием по-прежнему возникают даже при использовании фрагментов разного размера. у меня такое чувство, что то, чего я хочу, невозможно.