AnimationParallelView
来源:互联网 发布:mac 查看局域网所有ip 编辑:程序博客网 时间:2024/06/07 02:37
代码:
import React, { Component } from 'react';import { AppRegistry, StyleSheet, Text, View, Animated, Image, Easing, TouchableHighlight,} from 'react-native';// const IMG_URI = 'https://s3.amazonaws.com/media-p.slid.es/uploads/alexanderfarennikov/images/1198519/reactjs.png';export default class AnimationParallelView extends Component { constructor(props) { super(props); this.animatedValue1 = new Animated.Value(0); this.animatedValue2 = new Animated.Value(0); this.animatedValue3 = new Animated.Value(0); } componentDidMount () { this.animate(); } animate () { // 将三个动画属性值重置为0 this.animatedValue1.setValue(0); this.animatedValue2.setValue(0); this.animatedValue3.setValue(0); //声明一个创造动画的函数 该方法接受四个参数:value, duration, easing, delay(默认值是0),返回一个新的动画。 const createAnimation = function (value, duration, easing, delay = 0) { return Animated.timing( value, { toValue: 1, duration: duration, easing : easing, delay : delay, } ); }; //创建动画组 Animated.parallel([ createAnimation(this.animatedValue1, 2000, Easing.ease), createAnimation(this.animatedValue2, 1000, Easing.ease, 1000), createAnimation(this.animatedValue3, 1000, Easing.ease, 2000) ]).start(); } render () { // 设置插值 插值的输出范围是从0.5到2,我们会用这个值对文本按0.5到2的比例进行缩放 const scaleText = this.animatedValue1.interpolate({ inputRange: [0, 1], outputRange: [0.5, 2] }); // 插值的输出范围是 0 degrees 到 720 degrees,即将元素旋转两周 const spinText = this.animatedValue2.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '720deg'] }); // 插值的输出范围是 -100 到 400,该值会用于 View 的 margin 属性 const introButton = this.animatedValue3.interpolate({ inputRange: [0, 1], outputRange: [-100, 400] }); return ( <View style={[styles.container]}> <Animated.View style={{ transform: [{scale: scaleText}] }}> <Text>Welcome</Text> </Animated.View> <Animated.View style={{ marginTop: 20, transform: [{rotate: spinText}] }}> <Text style={{fontSize: 20}}> to the App! </Text> </Animated.View> <Animated.View style={{top: introButton, position: 'absolute'}}> <TouchableHighlight //animate 绑定组件Text 点击该组件时,重启该动画组。 onPress={this.animate.bind(this)} style={styles.button}> <Text style={{color: 'red', fontSize: 20}}> Click Here To Start </Text> </TouchableHighlight> </Animated.View> </View> ); }}const styles = StyleSheet.create({ container: { marginTop: 100, justifyContent: 'center', alignItems: 'center', }});
阅读全文
0 0
- AnimationParallelView
- C语言运算符优先级 详细列表
- CSS3阴影 box-shadow的使用和技巧总结
- Andorid 中TouchEvent理解(四)滑动冲突的解决
- 代码自动生成工具(二)-miniproto的java库实现
- android 弹出选择框,简单通用弹出选择框
- AnimationParallelView
- 正确释放 Vector的内存
- USB学习笔记——OTG功能
- 十年测试老司机对软件测试前景的个人见解
- LeetCode 394 Decode String 题解
- 带赖子的超高效麻将、跑胡子胡牌算法
- 2179: FFT快速傅立叶
- 文章标题
- 33、不一样的C++系列--类模板与特化