[React Native] Animate Styles of a React Native View with Animated.timing

In this lesson we will use Animated.timing to animate the opacity and height of a View in our React Native application. This function has attributes that you can set such as easing and duration.

 

复制代码
import React, {Component} from 'react';
import {Text, View, StyleSheet, Image, Animated, Easing} from 'react-native';

var styles = StyleSheet.create({
    container: {
        backgroundColor: '#48BBEC',
        paddingBottom: 10
    },
    name: {
        alignSelf: 'center',
        fontSize: 21,
        marginTop: 10,
        marginBottom: 5,
        color: 'white'
    },
    handle: {
        alignSelf: 'center',
        fontSize: 16,
        color: 'white'
    },
    image: {
        height: 125,
        width: 125,
        borderRadius: 65,
        marginTop: 10,
        alignSelf: 'center'
    }
});

class Badge extends React.Component {
    constructor(props){
        super(props);
        this.state = {
            fadeAnim: new Animated.Value(0),
            bounceAnim: new Animated.Value(0)
        }
    }
    componentDidMount() {
        Animated.timing(
            this.state.fadeAnim,
            {toValue: 1, duration: 2000}
        ).start();
        Animated.timing(
            this.state.bounceAnim,
            {toValue: 1, duration: 2000, easing: Easing.bounce}
        ).start();
    }
    render(){
        const animatedTextStyle = {
            opacity: this.state.fadeAnim,
        };
        const animateImageStyle = {
            opacity: this.state.bounceAnim
        };
        return (
            <View style={styles.container}>
                <Animated.Image style={[styles.image, animateImageStyle]} source={{uri: this.props.userInfo.avatar_url}}></Animated.Image>
                <Animated.Text style={[styles.name,animatedTextStyle]}> {this.props.userInfo.name} </Animated.Text>
                <Animated.Text style={[styles.handle, animatedTextStyle]}> {this.props.userInfo.login} </Animated.Text>
            </View>
        )
    }
}

/**
 * Make sure when when user the Badge component, the userInfo object is there
 * @type {{userInfo: *}}
 */
Badge.propTypes = {
    userInfo: React.PropTypes.object.isRequired
};

module.exports=Badge;
复制代码

 

posted @   Zhentiw  阅读(614)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2015-12-18 [Unit Testing] Node testing: Test api Get request
2015-12-18 [CSS3] Interactive Pseudo-Classes :link :visited :hover :active
2015-12-18 [Javascript] Intro to Recursion - Refactoring to a Pure Function
2015-12-18 [Javascript ] Array methods in depth - sort
点击右上角即可分享
微信分享提示