Есть ли какой-либо эмитент частиц на Android, такой как iOS CAEmitterLayer для эмиттера окружности?

Моя проблема сейчас трудно решить.

Я должен разработать приложение для Android рядом со своим коллегой, которое делает то же самое, но на iOS.

В конце разработки мы должны доставить два приложения, которые делают одно и то же и выглядят одинаково (быть уверенными, ничто, как iOS-направляющие линии, принудительно на Android и наоборот), чтобы опыт был таким же и погружения.

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

Итак, представьте себе круг с белой рамкой и белые частицы, удаляющиеся от этой белой мембраны. Все эти частицы тянутся к центру, а их база скоростей изменяется (но без ускорения!). Самые быстрые частицы должны "умереть", прежде чем достигнуть центра. Что-то, что можно легко установить с помощью настроек на всю жизнь и скорость, конечно.

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

На моей стороне я действительно борется. Как и она, у меня нет никакого опыта в анимации и UI/UX. Если вы ищете генератор/излучатель частиц на Android, я натыкаюсь на эту красивую библиотеку: https://github.com/plattysoft/Leonids, и, похоже, она может предложить то, что Я ищу.

Но у меня есть несколько нерешенных проблем с использованием этой библиотеки:

  • Я не могу или не знаю, могу ли я помещать излучатели внутри круга;
  • Я считаю, что если кружок, на котором подключен эмиттер, движется (прокрутка/анимация), существует большая вероятность того, что частицы не будут перемещаться с кругом;

Как я уже сказал, мой коллега iOS решил эти проблемы. Даже движущаяся часть: мы разговаривали с нашим менеджером, который сказал использовать "что делать, если круговые движения?" и она сразу же попробовала это перед нами. Я был потрясен...

Она сказала мне, что я должен искать способ содержать мои частицы внутри контейнера (имеет смысл ^^) и что мой кругный вид должен быть обрезан слоями, чтобы частицы не оставьте круг, особенно если все движется.

Это то, что я достиг этого благодаря вышеупомянутой библиотеке Android:

  • Я могу испускать частицы, определять их форму, их масштаб/размер, их скорость и несколько угол излучения;
  • Я могу подключить излучатель частиц к виду. Он будет использовать представление X & Y координат, чтобы испускать частицы, но проблема с XML-ориентированным кругом, например здесь заключается в том, что он содержится внутри представления на квадратной основеheight и a width), и по какой-то странной причине мой круг - это рисовать выше, чем в квадратном представлении.

Надеюсь, я смогу найти другую библиотеку, но если текущий работает, почему бы и нет? Просто попробуйте мою удачу там ^^

Спасибо за помощь!

Ответ 1

Автор книги Леониды сделал предложение, которое могло бы помочь вам добиться желаемого эффекта:

(источник)

plattysoft прокомментировал 19 сентября 2016 года

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

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

Tricky, и не поддерживается напрямую, но выполнимо.