#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. проблемы с выравниванием по-прежнему возникают даже при использовании фрагментов разного размера. у меня такое чувство, что то, чего я хочу, невозможно.