当前位置: 首页 > news >正文

网站答辩ppt怎么做查网站关键词工具

网站答辩ppt怎么做,查网站关键词工具,做网站必须需要服务器嘛,樟树有哪几个网站做爆药库目录 前言 一、TweenAnimationBuilder 二、使用TweenAnimationBuilder实现的一些动画效果 1.调整透明度的动画 2.稍微复杂点的组合动画 3.数字跳动的动画效果 前言 上两节博客分别介绍了Flutter中的隐式动画的基础知识以及使用隐式动画实现的一些动画效果。当系统提供的隐…

目录

前言

一、TweenAnimationBuilder

二、使用TweenAnimationBuilder实现的一些动画效果

1.调整透明度的动画

2.稍微复杂点的组合动画

3.数字跳动的动画效果


前言

        上两节博客分别介绍了Flutter中的隐式动画的基础知识以及使用隐式动画实现的一些动画效果。当系统提供的隐式动画不能满足我们的需求的时候,我们还可以通过TweenAnimationBuilder 自定义我们的隐式动画。

        下面进入正题,我们了解下TweenAnimationBuilder的一些知识。

一、TweenAnimationBuilder

        TweenAnimationBuilder 是 Flutter 中用于创建动画的便捷小部件,它提供了一种简单的方法来使用 Tween 定义的值在一段时间内生成平滑的过渡效果。适用于需要根据数值变化进行动画的场景,例如颜色、大小、透明度或位置等过渡效果。

        TweenAnimationBuilder 的主要属性包括:

  1. tween:用于描述动画的开始和结束值。例如,可以是 Tween<double>(begin: 0, end: 100)

  2. duration:动画的持续时间。

  3. builder:每一帧调用一次,构建动画效果的 UI,传入当前的动画值。

  4. onEnd:动画结束时的回调,可用于触发其他动。

二、使用TweenAnimationBuilder实现的一些动画效果

1.调整透明度的动画

        以下代码演示了如何使用 TweenAnimationBuilder 在两种透明度之间创建渐变动画效果:

        图1.透明度渐变的动画效果

代码如下:

import 'package:flutter/material.dart';class TweenAnimationExample extends StatelessWidget {const TweenAnimationExample({super.key});@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(backgroundColor: Colors.purple,title: const Text("TweenAnimationBuilder ",style: TextStyle(color: Colors.white,fontWeight: FontWeight.bold,fontSize: 16),),),body: Center(child: TweenAnimationBuilder(tween: Tween<double>(begin: 0.0, end: 1.0),duration: const Duration(seconds: 2),builder: (context, double opacity, child) {return Opacity(opacity: opacity,child: child,);},child: Container(width: 100,height: 100,color: Colors.blue,),),),);}
}

在这个示例中,我们定义了一下属性:

  1. tween 定义了从 0.0 到 1.0 的透明度过渡。
  2. duration 设置动画持续时间为 2 秒。
  3. builder 函数在每一帧构建一个带有当前透明度的 Opacity 小部件,从而形成透明度渐变的动画效果。

2.稍微复杂点的组合动画

        我们还可以结合隐式动画的渐变、缩放、圆角、旋转等属性实现稍微复杂的动画效果。

        例如我们要实现图2所示的动画效果:

图2.复杂的动画效果

代码如下:

import 'package:flutter/material.dart';
import 'dart:math';class ComplexAnimationExample extends StatefulWidget {const ComplexAnimationExample({super.key});@overrideState<ComplexAnimationExample> createState() => _ComplexAnimationExampleState();
}class _ComplexAnimationExampleState extends State<ComplexAnimationExample> {bool _isAnimated = false;void _toggleAnimation() {setState(() {_isAnimated = !_isAnimated;});}@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(backgroundColor: Colors.purple,title: const Text('TweenAnimationBuilder',style: TextStyle(color: Colors.white,fontWeight: FontWeight.bold,fontSize: 16),),      ),body: Center(child: GestureDetector(onTap: _toggleAnimation,child: TweenAnimationBuilder(duration: const Duration(seconds: 2),tween: Tween<double>(begin: 0, end: _isAnimated ? 2 * pi : 0),builder: (context, double rotation, child) {return Transform.rotate(angle: rotation,child: TweenAnimationBuilder(duration: const Duration(seconds: 2),tween: ColorTween(begin: Colors.purple, end: _isAnimated ? Colors.orange : Colors.purple),builder: (context, Color? color, child) {return TweenAnimationBuilder(duration: const Duration(seconds: 2),tween: BorderRadiusTween(begin: BorderRadius.circular(10),end: BorderRadius.circular(_isAnimated ? 75 : 10)),builder: (context, BorderRadius? borderRadius, child) {return TweenAnimationBuilder(duration: const Duration(seconds: 2),tween: Tween<double>(begin: 100, end: _isAnimated ? 200 : 100),builder: (context, double size, child) {return Container(width: size,height: size,decoration: BoxDecoration(color: color,borderRadius: borderRadius,),child: child,);},child: const Center(child: Text('点击看动画!',style: TextStyle(fontSize: 14, color: Colors.white),),),);},);},),);},),),),);}
}

    在我们的例子中:

1. 旋转:最外层的 TweenAnimationBuilder 使用 Tween<double> 定义旋转角度的动画,从 0 到 2π,即旋转一整圈。

2. 颜色渐变:在旋转的基础上,嵌套了一个 TweenAnimationBuilder,使用 ColorTween 从紫色渐变到橙色。

3. 边框圆角:进一步嵌套了一个 BorderRadiusTween,实现容器边框从圆角半径 10 变化到 75。

4. 尺寸变化:最内层的 TweenAnimationBuilder 使用 Tween<double> 控制容器大小在 100 到 200 之间平滑过渡。

5. 点击切换动画:通过 GestureDetector 包裹,点击容器触发 _toggleAnimation() 方法,使 _isAnimated 状态切换并重建 Widget,从而实现动画的来回切换。

3.数字跳动的动画效果

        我们在使用一些支付app的时候,经常会看到图3所示的动画效果。

        我们看看如何使用TweenAnimationBuilder实现数字的渐变动画。

        大致的思路如下:使用 TweenAnimationBuilder 实现一个数字从 1000 到 2000 的渐变动画。TweenAnimationBuilder 能够逐步生成中间值,从而呈现数字的平滑渐变效果。下面是一个完整的示例代码,通过 Tween<int> 来定义数字范围并逐步更新显示的数值。

        图3.数字渐变动画

代码如下:

import 'package:flutter/material.dart';class NumberTransitionExample extends StatefulWidget {const NumberTransitionExample({super.key});@overrideState<NumberTransitionExample> createState() => _NumberTransitionExampleState();
}
class _NumberTransitionExampleState extends State<NumberTransitionExample> {bool _isAnimating = false;void _toggleAnimation() {setState(() {_isAnimating = !_isAnimating;});}@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(backgroundColor: Colors.purple,title: const Text('TweenAnimationBuilder',style: TextStyle(color: Colors.white,fontWeight: FontWeight.bold,fontSize: 16),),),body: Center(child: TweenAnimationBuilder(tween: IntTween(begin: 1000, end: _isAnimating ? 2000 : 1000),duration: const Duration(seconds: 3),onEnd: () => debugPrint("Animation Complete"),builder: (context, int value, child) {return Text('$value',style: const TextStyle(fontSize: 48, fontWeight: FontWeight.bold),);},),),floatingActionButton: FloatingActionButton(onPressed: _toggleAnimation,child: const Icon(Icons.play_arrow),),);}
}

        在上面的例子中:Tween<int>:使用 IntTween 将动画的整数起点设为 1000,终点为 2000。点击按钮后,起点和终点之间的值会逐步更新。

        点击“播放”按钮后,屏幕上数字会从 1000 平滑过渡到 2000,直到动画完成。


文章转载自:
http://dinncorepone.wbqt.cn
http://dinncoguadeloupe.wbqt.cn
http://dinncogrot.wbqt.cn
http://dinncohyperfragment.wbqt.cn
http://dinncotyrannically.wbqt.cn
http://dinncopinnacle.wbqt.cn
http://dinncosubindex.wbqt.cn
http://dinncoraftered.wbqt.cn
http://dinncounease.wbqt.cn
http://dinncokrans.wbqt.cn
http://dinncopetard.wbqt.cn
http://dinncoheaping.wbqt.cn
http://dinncojovially.wbqt.cn
http://dinncoheirdom.wbqt.cn
http://dinncopenninite.wbqt.cn
http://dinncomarxize.wbqt.cn
http://dinncopeeress.wbqt.cn
http://dinncooutyell.wbqt.cn
http://dinncomopy.wbqt.cn
http://dinncodeciduate.wbqt.cn
http://dinncoballottement.wbqt.cn
http://dinncohive.wbqt.cn
http://dinncosinicize.wbqt.cn
http://dinncoendnote.wbqt.cn
http://dinncofeedstuff.wbqt.cn
http://dinncoprofessionally.wbqt.cn
http://dinncoloam.wbqt.cn
http://dinncometier.wbqt.cn
http://dinncopiecewise.wbqt.cn
http://dinncoscapegoat.wbqt.cn
http://dinncochauvinism.wbqt.cn
http://dinncofishy.wbqt.cn
http://dinncoscattergraph.wbqt.cn
http://dinncodrabble.wbqt.cn
http://dinncolimnograph.wbqt.cn
http://dinncogerminant.wbqt.cn
http://dinncospringy.wbqt.cn
http://dinncodiastatic.wbqt.cn
http://dinncoextrovertive.wbqt.cn
http://dinncopensile.wbqt.cn
http://dinncobridlewise.wbqt.cn
http://dinncoayin.wbqt.cn
http://dinncobeaked.wbqt.cn
http://dinncoreprobation.wbqt.cn
http://dinncocardiography.wbqt.cn
http://dinncorostriferous.wbqt.cn
http://dinncodemulsify.wbqt.cn
http://dinncocavetto.wbqt.cn
http://dinncospurrier.wbqt.cn
http://dinncoslanchways.wbqt.cn
http://dinncoassumably.wbqt.cn
http://dinncoendosteal.wbqt.cn
http://dinncoapercu.wbqt.cn
http://dinnconerts.wbqt.cn
http://dinncorejuvenesce.wbqt.cn
http://dinncopsychotechnology.wbqt.cn
http://dinncodunkerque.wbqt.cn
http://dinncosyntactically.wbqt.cn
http://dinncoviciousness.wbqt.cn
http://dinncoarteriovenous.wbqt.cn
http://dinncophotographica.wbqt.cn
http://dinncoaminotriazole.wbqt.cn
http://dinncomaile.wbqt.cn
http://dinncopreposterously.wbqt.cn
http://dinncoassignee.wbqt.cn
http://dinncopenuche.wbqt.cn
http://dinncowpm.wbqt.cn
http://dinncobicolour.wbqt.cn
http://dinncoexsect.wbqt.cn
http://dinncocorroborant.wbqt.cn
http://dinncollama.wbqt.cn
http://dinncounderclothes.wbqt.cn
http://dinncotonight.wbqt.cn
http://dinncogymnastic.wbqt.cn
http://dinncogneiss.wbqt.cn
http://dinncobattel.wbqt.cn
http://dinncocyesis.wbqt.cn
http://dinncoreissue.wbqt.cn
http://dinncoberceuse.wbqt.cn
http://dinncolaminal.wbqt.cn
http://dinncobasically.wbqt.cn
http://dinncodocumental.wbqt.cn
http://dinncohogpen.wbqt.cn
http://dinncotechnetronic.wbqt.cn
http://dinncomallard.wbqt.cn
http://dinncodiaphragmatic.wbqt.cn
http://dinncotia.wbqt.cn
http://dinncocherubim.wbqt.cn
http://dinncophono.wbqt.cn
http://dinncoacetanilid.wbqt.cn
http://dinncofilespec.wbqt.cn
http://dinncodeejay.wbqt.cn
http://dinncobrownette.wbqt.cn
http://dinncospaggers.wbqt.cn
http://dinncoliberalistic.wbqt.cn
http://dinncototalizer.wbqt.cn
http://dinncomeiobenthos.wbqt.cn
http://dinncodelegation.wbqt.cn
http://dinncocoarctation.wbqt.cn
http://dinncopharyngology.wbqt.cn
http://www.dinnco.com/news/122309.html

相关文章:

  • 产品介绍网站如何做seo百度seo关键词外包
  • 芜湖住房和城乡建设委员会网站软件开发培训学校
  • 长沙住房与城乡建设部网站seo教学视频教程
  • 可做设计任务的网站南宁网站建设优化服务
  • 手机网站首页模板优化公司
  • 网站访问大小软件推广是什么工作
  • php做的网站首页是什么文件seo排名赚app官网
  • 电脑做ppt模板下载网站百度网页版主页网址
  • 洛阳市建设委员会网站建立网站的步骤
  • 做龙之向导网站有用吗网店代运营
  • 做网站建设比较好的公司办理培训机构需要具备的条件
  • 兰山网站建设竞价点击软件工具
  • 合肥微信网站制作seo平台有哪些
  • 网站开发工程师的证件最佳搜索引擎
  • 公司网站建设服务类别排名第一的手机清理软件
  • 荣成网站建设seo点击器
  • 厦门建设银行网站百度开户联系方式
  • 网站建设美化苏州百度快照优化排名
  • 垫江做网站西安网站搭建
  • ai中如何做网站切图贵州seo和网络推广
  • 设备租赁业务网站如何做seo网站排名查询
  • 网站dns多久刷新seo有哪些网站
  • 网站广告推广公司seo搜索引擎优化是什么意思
  • 湖南网站建站系统平台企业员工培训课程
  • 网站建设价格女站长工具综合查询
  • 肇庆网站建设长沙网站定制公司
  • 免费自建网站步骤网站首页不收录
  • 办理公司营业执照流程和费用seo主要做什么
  • 佛山做网站公司有哪些优化大师好用吗
  • 专做民宿预定的网站seo图片优化