1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mengpeng920223-MAnim

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Readme_v1.0.0.md 6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 00:40 eca0a5c

MAnim

Введение

Недавно, работая над небольшой игрой для WeChat, я столкнулся с движком Белый аист и понял, что такое анимация. Почему создание анимации в Android так сложно? Я надеюсь, что этот проект поможет сделать анимацию на Android более простой. Это основная цель моего открытого проекта. Буду продолжать обновлять и постепенно добавлять функции...

GIF-записи выглядят плохо, нажмите посмотреть видео.

Добавление в ваш проект

Шаг 1: Добавьте репозиторий JitPack в файл сборки.

Добавьте его в корневой файл build.gradle в конце раздела repositories:

allprojects {
    repositories {
    ...
    maven { url 'https://jitpack.io' }
    }
}
Шаг 2: Добавьте зависимость
dependencies {
    implementation 'com.gitee.mengpeng920223:MAnim:V1.0.0'
}

Использование V1.0.0

  1. Как использовать масштабирование анимации?
 MAnim.getInstance()
       .with(imageView)
       .scaleXY(2000, 1f, 3f, 1f)
       .start()
  1. Как использовать анимацию прозрачности?
 MAnim.getInstance()
       .with(imageView)
       .alpha(2000, 1f, 0.1f, 1f)
       .start()
  1. Как использовать X-осевое перемещение?
 MAnim.getInstance()
       .with(imageView)
       .rotationX(2000, 0f, 360f, 0f)
       .start()

...

Я думаю, вы все знаете, как это использовать.

Название анимации Анимация
Масштабирование по оси X scaleX
Масштабирование по оси Y scaleY
Общее масштабирование scaleXY
Прозрачность alpha
Вращение вокруг оси X rotationX
Вращение вокруг оси Y rotationY
Симметричное вращение вокруг осей X и Y rotationXY
Вращение вокруг центра rotation
Перемещение по направлению оси X translationX
Перемещение по направлению оси Y translationY
Симметричное перемещение по осям X и Y translationXY
Противоположное перемещение по осям XY translationYX

Что делать, если я хочу выполнить серию анимаций в определённом порядке?

  MAnim.getInstance()
       .with(imageView)
       .scaleXY(2000, 1f, 3f, 1f)
       .alpha(2000, 1f, 0.1f, 1f)
       .rotationX(2000, 0f, 360f, 0f)
       .rotationY(2000, 0f, 360f, 0f)
       .rotationXY(2000, 0f, 360f, 0f)
       .rotation(2000, 0f, 720f, 0f)
       .translationX(2000, 0f, 300f, -300f, 0f)
       .translationY(2000, 0f, 300f, -300f, 0f)
       .translationXY(2000, 0f, 300f, -300f, 0f)
       .translationYX(2000, 0f, -300f, 300f, 0f)
       .start()

Есть ли метод обратного вызова после выполнения анимации? Ответ, конечно, да. Просто напишите следующим образом.

 MAnim.getInstance()
      .with(imageView)
      .scaleXY(2000, 1f, 3f, 1f)
      .call {
           //Выполнение обратного вызова после scaleXY
      }
      .alpha(2000, 1f, 0.1f, 1f)
      .call {
            //Выполнение обратного вызова после alpha
      }
      .rotationX(2000, 0f, 360f, 0f)
      .call {
            //Выполнение обратного вызова после rotationX
      }
      .start()

Вы можете проверить конкретные параметры в исходном коде.

Это всё? Нет, у нас есть ещё одна проблема. Некоторые пользователи могут спросить, можно ли выполнять две или более анимаций одновременно? Можно ли удовлетворить эту потребность? Конечно, можно. Например, изображение может одновременно выполнять масштабирование и перемещаться вправо вдоль оси X при изменении прозрачности.

 MAnim.getInstance()
       .with(imageView)
       .scaleXY(2000, 1f, 3f, 1f)
       .start()
 MAnim.getInstance()
       .with(imageView)
       .alpha(2000, 1f, 0.1f, 1f)
       .start()
 MAnim.getInstance()
       .with(imageView)
       .rotationX(2000, 0f, 360f, 0f)
       .start()

Разве это не просто?

Заключение

Текущая версия V1.0.0 уже завершена. Я уверен, что большинство людей считают, что выполнение анимации таким способом намного проще. Однако очевидно, что возможности анимации ограничены. Ещё предстоит много работы. В будущем я буду постоянно обновлять и поддерживать этот проект, чтобы упростить анимацию в Android. Ошибки неизбежны, поэтому я надеюсь, что мы сможем общаться и обмениваться идеями. Если у вас есть вопросы, отправьте Issue. Если вы хотите добавить новые функции, оставьте комментарий. Я постараюсь исправить ошибки и реализовать новые функции.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mengpeng920223-MAnim.git
git@api.gitlife.ru:oschina-mirror/mengpeng920223-MAnim.git
oschina-mirror
mengpeng920223-MAnim
mengpeng920223-MAnim
master