如何在 React Native 中创建动画屏幕
how to create animation screen in react native
我正在尝试制作类似于此图片的动画屏幕,但我没有正确完成。 b 我想要我上传的这张图片。我不擅长动画,请帮助我改进我的代码。我卡在动画里了。
这是我试过的。
import React, { Component } from 'react'
import { View, Image, Animated, Easing } from 'react-native'
const backgroundImage = require("../../../assets/icons/post.jpeg")
export default class Splash extends Component {
constructor(props) {
super(props)
this.state = { spinAnim: new Animated.Value(0) }
}
componentDidMount() {
this.handleAnimation()
}
handleAnimation = () => {
console.log("rree")
Animated.timing(
this.state.spinAnim,
{
toValue: 1,
duration: 500,
easing: Easing.linear,
useNativeDriver: true
}
).start();
}
render() {
const spin = this.state.spinAnim.interpolate({
inputRange: [0, 1],
outputRange: ['0deg', '360deg']
});
return (
<View>
<View style={{ flex: 1 }}>
<Animated.Image
source={backgroundImage}
resizeMode='cover'
style={{
position: 'absolute',
left: 40,
top: 100,
height: 100,
width: 100,
transform: [
{ rotate: spin },
]
}}
/>
</View>
</View>
)
}
}
如果你想使用一个包,你可以使用 Lottie,它也被 expo 支持。
https://www.npmjs.com/package/lottie-react-native
它使用 After Effects 创建非常漂亮的 React Native 动画。在 youtube 上搜索它,我在那里看到了一个非常干净的教程。祝你好运!
我认为你应该使用 react-native-animatable 库。在这个库中,你有很多你想使用的动画和过渡。非常好用
import * as Animatable from 'react-native-animatable';
<Animatable.Text animation="zoomInUp">Zoom me up, Scotty</Animatable.Text>
并且在这个库中,您可以使用更多道具,例如 onAnimationEnd
当动画结束时,您可以根据需要调用函数。
我正在尝试制作类似于此图片的动画屏幕,但我没有正确完成。 b 我想要我上传的这张图片。我不擅长动画,请帮助我改进我的代码。我卡在动画里了。
这是我试过的。
import React, { Component } from 'react'
import { View, Image, Animated, Easing } from 'react-native'
const backgroundImage = require("../../../assets/icons/post.jpeg")
export default class Splash extends Component {
constructor(props) {
super(props)
this.state = { spinAnim: new Animated.Value(0) }
}
componentDidMount() {
this.handleAnimation()
}
handleAnimation = () => {
console.log("rree")
Animated.timing(
this.state.spinAnim,
{
toValue: 1,
duration: 500,
easing: Easing.linear,
useNativeDriver: true
}
).start();
}
render() {
const spin = this.state.spinAnim.interpolate({
inputRange: [0, 1],
outputRange: ['0deg', '360deg']
});
return (
<View>
<View style={{ flex: 1 }}>
<Animated.Image
source={backgroundImage}
resizeMode='cover'
style={{
position: 'absolute',
left: 40,
top: 100,
height: 100,
width: 100,
transform: [
{ rotate: spin },
]
}}
/>
</View>
</View>
)
}
}
如果你想使用一个包,你可以使用 Lottie,它也被 expo 支持。
https://www.npmjs.com/package/lottie-react-native
它使用 After Effects 创建非常漂亮的 React Native 动画。在 youtube 上搜索它,我在那里看到了一个非常干净的教程。祝你好运!
我认为你应该使用 react-native-animatable 库。在这个库中,你有很多你想使用的动画和过渡。非常好用
import * as Animatable from 'react-native-animatable';
<Animatable.Text animation="zoomInUp">Zoom me up, Scotty</Animatable.Text>
并且在这个库中,您可以使用更多道具,例如 onAnimationEnd
当动画结束时,您可以根据需要调用函数。