android桌面动画开发,React Native Spruce 一个轻量级的动画库,轻松实现屏幕上的编排动画...

c6000ea96750d8a8893f61883979f63d.png

687474703a2f2f696d672e736869656c64732e696f2f6e706d2f762f72656163742d6e61746976652d7370727563652e7376673f7374796c653d666c617468747470733a2f2f696d672e736869656c64732e696f2f62616467652f5052732d77656c636f6d652d627269676874677265656e2e73766768747470733a2f2f696d672e736869656c64732e696f2f6e706d2f6c2f72656163742d6e61746976652d7370727563652e7376673f7374796c653d666c6174 ReactNative Spruce - (Android & iOS)

If this project has helped you out, please support us with a star

🌟

Spruce is a lightweight animation library that helps choreograph the animations on the screen. With so many different animation libraries out there, developers need to make sure that each view is animating at the appropriate time. Spruce can help designers request complex multi-view animations and not have the developers cringe at the prototype.

It provides a React Native Bridge around native spruce library. Here is a quick example of how you can Spruce up your screens!

Note: Currently on iOS it is not supported due to unavailable of Spruce Objective-C wrappers, please refer issue: 101

extensibility-tests.gif

📖 Getting started

$ npm install react-native-spruce --save

$ react-native link react-native-spruce

Android

Please copy below snippet in your app build.gradle file:

buildscript {

repositories {

jcenter()

google()

...

}

}

allprojects {

repositories {

mavenLocal()

jcenter()

google()

...

}

}

Note: Android SDK 27 > is supported

💻 Usage

import {

Spruce,

CorneredSort,

DefaultAnimations

} from "react-native-spruce";

// TODO: What to do with the module?

render () {

let sortWith = new CorneredSort(100);

let animateWith = DefaultAnimations.shrinkAnimator(1000)

}

Using a SortFunction

Luckily, RNSpruce comes with 8 SortFunction implementations with a wide open possibility to make more! Use the SortFunction to change the order in which views animate. Consider the following example:

let sort = new LinearSort(/*interObjectDelay=*/100L, /*reversed=*/false, LinearSort.Direction.TOP_TO_BOTTOM);

To make sure that developers can use RNSpruce out of the box, we included about 8 stock SortFunction implementations. These are some of the main functions we use at WillowTree and are so excited to see what others come up with!

DefaultSort

let sort = new DefaultSort(/*interObjectDelay=*/100L);

LinearSort

let sort = new LinearSort(/*interObjectDelay=*/100L, /*reversed=*/false, LinearSort.Direction.TOP_TO_BOTTOM);

CorneredSort

let sort = new CorneredSort(/*interObjectDelay=*/100L, /*reversed=*/false, CorneredSort.Corner.TOP_LEFT);

RadialSort

let sort = new RadialSort(/*interObjectDelay=*/100L, /*reversed=*/false, RadialSort.Position.TOP_LEFT);

RandomSort

let sort = new RandomSort(/*interObjectDelay=*/100L);

InlineSort

let sort = new InlineSort(/*interObjectDelay=*/100L, /*reversed=*/false, LinearSort.Direction.TOP_TO_BOTTOM);

ContinousSort

let sort = new ContinousSort(/*interObjectDelay=*/100L, /*reversed=*/false, ContinousSort.Position.TOP_LEFT);

Stock Animators

To make everybody's lives easier, the stock animators perform basic View animations that a lot of apps use today. Mix and match these animators to get the core motion you are looking for.

DefaultAnimations.growAnimator(duration:number)

DefaultAnimations.shrinkAnimator(duration:number)

DefaultAnimations.fadeAwayAnimator(duration:number)

DefaultAnimations.fadeInAnimator(duration:number)

DefaultAnimations.spinAnimator(duration:number)

Experiment which ones work for you! If you think of anymore feel free to add them to the library yourself!

✨ Credits

🤔 How to contribute

Have an idea? Found a bug? Please raise to ISSUES. Contributions are welcome and are greatly appreciated! Every little bit helps, and credit will always be given.

💫 Where is this library used?

If you are using this library in one of your projects, add it in this list below.

📜 License

This library is provided under the Apache 2 License.

RNSpruce @ prscX

💖 Support my projects

I open-source almost everything I can, and I try to reply everyone needing help using these projects. Obviously, this takes time. You can integrate and use these projects in your applications for free! You can even change the source code and redistribute (even resell it).

However, if you get some profit from this or just want to encourage me to continue creating stuff, there are few ways you can do it:

Starring and sharing the projects you like

🚀

If you're feeling especially charitable, please follow prscX on GitHub.

a0478eceabc009da3dd977943f1db269.png

Thanks!

❤️

prscX.github.io

Pranav >

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值