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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1 ответ

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

( источник)

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

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

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

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

Другие вопросы по тегам