Android: создание собственного 2D-аватара

Я создаю приложение, которое позволяет пользователю создать собственный 2D-аватар, указав такие вещи, как обувь, носки, цвет кожи и т. д.

В настоящее время мое решение состояло в том, чтобы создать .PNG каждого элемента, а затем «сложить» их все друг на друга в RelativeLayout. Так, например, я создаю ImageView из двух ботинок и выравниваю ImageView по центру относительного макета и нижней части относительного макета. Затем я «приклеиваю» нижний край носков к верхнему краю обуви. И так далее.

Этот метод работает, но я чувствую, что у меня нет большого контроля над тем, где находятся части, и я бы предпочел вычислить координаты x, y во время выполнения и разместить изображения таким образом. Например, это хорошо работает, если все ImageViews сложены, но если мне нужно разместить один ImageView на 10 пикселей ниже верхнего края другого ImageView, я не могу этого сделать (или, по крайней мере, я еще не понял, как это сделать) .

Я ищу решение, которое позволит мне управлять положением x,y объектов ImageView и позволять смещать изображения View относительно друг друга.


person neonDion    schedule 13.03.2013    source источник
comment
Вы нашли какое-нибудь решение... или любую библиотеку, которая это делает? общее создание аватара?   -  person Umair    schedule 06.03.2014
comment
Нет. В итоге я создал собственный вид и в основном придумал некоторые правила сборки аватара. Так что обувь всегда была самым низким элементом на экране. Ноги прикреплены к ботинкам. Туловище всегда прикреплено к верхней части ног и т. д. Затем во время выполнения я измерял высоту каждого компонента (ног, туловища и т. д.) и назначал их положение, чтобы персонаж выглядел правильно. Например, если бы ноги были высотой 200 пикселей, то нижняя часть туловища располагалась бы по координатам x = x, y = 200. Я был новичком в программировании, когда попробовал это, и я уверен, что есть способ получше.   -  person neonDion    schedule 07.03.2014
comment
эмм.. я не очень новичок в программировании, но я думаю почти о том же.. так что у вас есть поддон с предметами, я буду исправлять расчет для каждого изображения.. скажем, какая часть кепки находится в центре головы.. так что, если пользователь выбирает эту шляпу/кепку.. она появится на голове мультяшного персонажа... возможно, я придумаю какую-нибудь хорошую структуру данных, чтобы сделать ее масштабируемой для многих элементов... но основная логика та же. так что нет библиотек? Вижу, вашему вопросу уже год.   -  person Umair    schedule 07.03.2014
comment
Возможно, метод, который я описал для позиционирования компонентов аватара, правилен, но моя реализация в то время была довольно плохой. Я не искал какие-либо библиотеки для создания аватаров, поэтому не могу это прокомментировать.   -  person neonDion    schedule 07.03.2014


Ответы (1)


Если вы предпочитаете размещать изображения по координатам x,y, вам следует рассмотреть возможность использования одного вида и простого рисования изображений сверху. См. этот документ по пользовательскому рисованию. Вы найдете drawBitmap и некоторые из его полезных перегрузок.

person kabuko    schedule 13.03.2013
comment
Спасибо за ссылку. Я считаю, что это то, что я искал. - person neonDion; 14.03.2013