我有一个应用程序,是我用REACTIVE Native编写的.我试着用动画Api和图像为这个应用程序制作一个动画背景.动画只在一个方向上起作用.动画运行后,我希望它朝与之相反的方向运行.我是动画阿皮的新手,请帮帮我!我把代码留在下面.
import {
ANIMATION_DURATION,
ANIMATION_TO_VALUE,
INPUT_RANGE_END,
INPUT_RANGE_START,
OUTPUT_RANGE_END,
OUTPUT_RANGE_START,
} from "../constant";
import { DevHeight, DevWidth } from "../utils/device";
import React, { useEffect, useRef } from "react";
import {
StyleSheet,
Animated,Easing,
} from "react-native";
export const AnimatedBackground = ({backgroundImage,style}) => {
const initialValue = 0;
const translateValue = useRef(new Animated.Value(initialValue)).current;
const translate = () => {
translateValue.setValue(initialValue);
Animated.loop(
Animated.timing(translateValue, {
toValue: ANIMATION_TO_VALUE,
duration: ANIMATION_DURATION,
easing: Easing.linear,
useNativeDriver: true,
})
).start();
};
useEffect(() => {
translate();
}, [translateValue]);
const translateAnimation = translateValue.interpolate({
inputRange: [INPUT_RANGE_START, INPUT_RANGE_END],
outputRange: [OUTPUT_RANGE_START, OUTPUT_RANGE_END],
});
return (
<Animated.Image
resizeMode={'repeat'}
style={[styles.background,{
transform: [
{
translateX: translateAnimation,
},
{
translateY: translateAnimation,
},
],
},style]}
source={backgroundImage} />
);
};
export default AnimatedBackground;
const styles = StyleSheet.create({
container: {
flex: 1,
},
background: {
position: 'absolute',
width: DevWidth*2,
height: DevHeight*2,
flex:1,
top: 0,
opacity: 0.2,
transform: [
{
translateX: 0,
},
{
translateY: 0,
},
],
},
});