MAnim
Недавно, работая над небольшой игрой для WeChat, я столкнулся с движком Белый аист и понял, что такое анимация. Почему создание анимации в Android так сложно? Я надеюсь, что этот проект поможет сделать анимацию на Android более простой. Это основная цель моего открытого проекта. Буду продолжать обновлять и постепенно добавлять функции...
GIF-записи выглядят плохо, нажмите посмотреть видео.
Добавьте его в корневой файл build.gradle в конце раздела repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.gitee.mengpeng920223:MAnim:V1.0.0'
}
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()
...
Я думаю, вы все знаете, как это использовать.
Название анимации | Анимация |
---|---|
Масштабирование по оси 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 )