Моя проблема сейчас трудно решить.
Я должен разработать приложение для Android рядом со своим коллегой, которое делает то же самое, но на iOS.
В конце разработки мы должны доставить два приложения, которые делают одно и то же и выглядят одинаково (быть уверенными, ничто, как iOS-направляющие линии, принудительно на Android и наоборот), чтобы опыт был таким же и погружения.
Одна из лучших функций, предоставляемых, - это приятная анимация белого пустого круга, который испускает снежные частицы внутри круга. Круг может перемещаться с помощью прокрутки или просто подпрыгивая/скользящая анимация.
Итак, представьте себе круг с белой рамкой и белые частицы, удаляющиеся от этой белой мембраны. Все эти частицы тянутся к центру, а их база скоростей изменяется (но без ускорения!). Самые быстрые частицы должны "умереть", прежде чем достигнуть центра. Что-то, что можно легко установить с помощью настроек на всю жизнь и скорость, конечно.
Мой партнер, который младший, как я, использует iOS 'CAEmitterLayer, и результаты, полученные в течение дня или двух, великолепны и очень близки к тому, что мы должны быть достигнуты.
На моей стороне я действительно борется. Как и она, у меня нет никакого опыта в анимации и UI/UX. Если вы ищете генератор/излучатель частиц на Android, я натыкаюсь на эту красивую библиотеку: https://github.com/plattysoft/Leonids, и, похоже, она может предложить то, что Я ищу.
Но у меня есть несколько нерешенных проблем с использованием этой библиотеки:
- Я не могу или не знаю, могу ли я помещать излучатели внутри круга;
- Я считаю, что если кружок, на котором подключен эмиттер, движется (прокрутка/анимация), существует большая вероятность того, что частицы не будут перемещаться с кругом;
Как я уже сказал, мой коллега iOS решил эти проблемы. Даже движущаяся часть: мы разговаривали с нашим менеджером, который сказал использовать "что делать, если круговые движения?" и она сразу же попробовала это перед нами. Я был потрясен...
Она сказала мне, что я должен искать способ содержать мои частицы внутри контейнера (имеет смысл ^^) и что мой кругный вид должен быть обрезан слоями, чтобы частицы не оставьте круг, особенно если все движется.
Это то, что я достиг этого благодаря вышеупомянутой библиотеке Android:
- Я могу испускать частицы, определять их форму, их масштаб/размер, их скорость и несколько угол излучения;
- Я могу подключить излучатель частиц к виду. Он будет использовать представление X & Y координат, чтобы испускать частицы, но проблема с XML-ориентированным кругом, например здесь заключается в том, что он содержится внутри представления на квадратной основе (с
height
и awidth
), и по какой-то странной причине мой круг - это рисовать выше, чем в квадратном представлении.
Надеюсь, я смогу найти другую библиотеку, но если текущий работает, почему бы и нет? Просто попробуйте мою удачу там ^^
Спасибо за помощь!