三层图片互逆旋转动画

import 'base/BaseState.dart';
import 'configs/IconConfig.dart';
import 'package:flutter/material.dart';
import 'package:wflugin/Config.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
class RotateTransitionView extends StatefulWidget{
  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return _RotateTransitionView();
  }
}

class _RotateTransitionView extends BaseState<RotateTransitionView> with TickerProviderStateMixin/*SingleTickerProviderStateMixin*/{

  AnimationController _animationController;
  AnimationController _animationControllerBack;

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    _animationController = AnimationController(
      duration: Duration(seconds: 6),
      vsync: this,
    );

    _animationController.addStatusListener((status) {
      if(status == AnimationStatus.completed){// 动画执行完成
        _animationController.reset();
        _animationController.forward();
      }
    });
    _animationController.forward();

    _animationControllerBack = AnimationController(
      duration: Duration(seconds: 0),
      reverseDuration: Duration(seconds: 5),
      vsync: this,
    );

    _animationControllerBack.addStatusListener((status) {
      if(status == AnimationStatus.completed){// 动画执行完成
        _animationControllerBack.reverse();
      }else if(status == AnimationStatus.dismissed){
        _animationControllerBack.reset();
        _animationControllerBack.forward();
      }
    });
    _animationControllerBack.forward();
  }

  @override
  void dispose() {
    // TODO: implement dispose
    _animationController.dispose();
    _animationControllerBack.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return onActivityCreate(context);
  }

  @override
  onActivityCreate(BuildContext context) {
    // TODO: implement onActivityCreate
    return Stack(
      children: [
        RotationTransition(
            child: getTabImageall(IconConfig.img_outer_ring),
            turns: _animationControllerBack),
        RotationTransition(
            child: Container(
              padding: EdgeInsets.all(ScreenUtil().setWidth(30)),
              child: getTabImageall(IconConfig.img_center_ring),
            ),
            turns: _animationController),
        RotationTransition(
            child: Container(
              padding: EdgeInsets.all(ScreenUtil().setWidth(60)),
              child: getTabImageall(IconConfig.img_inner_ring),
            ),
            turns: _animationControllerBack)
      ],
    );
  }
}

图片:
img_outer_ring

img_center_ring
img_inner_ring

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值