Android Flutter实现五种酷炫文字动画效果详解
作者:岛上码农 发布时间:2023-06-27 02:57:16
前言
偶然逛国外博客,看到了一个介绍文字动画的库,进入 pub 一看,立马就爱上这个动画库了,几乎你能想到的文字动画效果它都有!现在正式给大家安利一下这个库:animated_text_kit。本篇我们介绍几个酷炫的效果,其他的效果大家可以自行查看官网文档使用。
波浪涌动效果
波浪涌动
上面的动画效果只需要下面几行代码,其中loadUntil
用于控制波浪最终停留的高度,取值是0-1.0,如果是1.0则会覆盖满整个文字,不足1.0的时候会在文字上一直显示波浪涌动的效果。这种效果用来做页面加载到时候比干巴巴地显示个“加载中”有趣多了!
Widget liquidText(String text) {
return SizedBox(
width: 320.0,
child: TextLiquidFill(
text: text,
waveColor: Colors.blue[400]!,
boxBackgroundColor: Colors.redAccent,
textStyle: TextStyle(
fontSize: 80.0,
fontWeight: FontWeight.bold,
),
boxHeight: 300.0,
loadUntil: 0.7,
),
);
}
波浪线跳动文字组
波浪跳动文字
文字按波浪线跳动的感觉是不是很酷,而且还支持文字组哦,可以实现多行文字依次动起来!代码也只有几行,其中repeatForever
代表动画是否一直重复,如果为否的话,按设定次数重复(默认3次,可配置)。
Widget wavyText(List<String> texts) {
return DefaultTextStyle(
style: const TextStyle(
color: Colors.blue,
fontSize: 20.0,
),
child: AnimatedTextKit(
animatedTexts: texts.map((e) => WavyAnimatedText(e)).toList(),
isRepeatingAnimation: true,
repeatForever: true,
onTap: () {
print("文字点击事件");
},
),
);
}
彩虹动效
彩虹文字动效
一道彩虹滑过文字,最终留下渐变的效果,瞬间让文字丰富多彩!动效的颜色可以通过一个Color
数组配置,而文字自身的参数(如字体、尺寸、粗细等)依旧可以保留。代码如下所示:
Widget rainbowText(List<String> texts) {
const colorizeColors = [
Colors.purple,
Colors.blue,
Colors.yellow,
Colors.red,
];
const colorizeTextStyle = TextStyle(
fontSize: 36.0,
fontWeight: FontWeight.bold,
);
return SizedBox(
width: 320.0,
child: AnimatedTextKit(
animatedTexts: texts
.map((e) => ColorizeAnimatedText(
e,
textAlign: TextAlign.center,
textStyle: colorizeTextStyle,
colors: colorizeColors,
))
.toList(),
isRepeatingAnimation: true,
repeatForever: true,
onTap: () {
print("文字点击事件");
},
),
);
}
滚动广告牌效果
滚动文字
一行文字像滚动广告牌那样滚动下来,非常适合做一些动态信息的播报。代码如下:
Widget rotateText(List<String> texts) {
return SizedBox(
width: 320.0,
height: 100.0,
child: DefaultTextStyle(
style: const TextStyle(
fontSize: 36.0,
fontFamily: 'Horizon',
fontWeight: FontWeight.bold,
color: Colors.blue,
),
child: AnimatedTextKit(
animatedTexts: texts.map((e) => RotateAnimatedText(e)).toList(),
onTap: () {
print("点击事件");
},
repeatForever: true,
),
),
);
}
打字效果
打字效果
一个个文字像敲击键盘一样出现在屏幕上,如果配送机械键盘“啪啦啪啦”的声音,简直就感觉是真的在敲代码一样!代码一样很简单!
Widget typerText(List<String> texts) {
return SizedBox(
width: 320.0,
child: DefaultTextStyle(
style: const TextStyle(
fontSize: 30.0,
color: Colors.blue,
),
child: AnimatedTextKit(
animatedTexts: texts
.map((e) => TyperAnimatedText(
e,
textAlign: TextAlign.start,
speed: Duration(milliseconds: 300),
))
.toList(),
onTap: () {
print("文字点击事件");
},
repeatForever: true,
),
),
);
}
其他效果
animated_text_kit 还提供了其他文字动效,如下所示:
渐现效果(Fade)
打字机效果(Typewriter)
缩放效果(Scale)
闪烁效果(Flicker)
自定义效果
支持自定义效果,只需要动效类继承AnimatedText
,然后重载下面的方法就可以了:
构造方法:通过构造方法配置动效参数
initAnimation
:初始化Animation
对象,并将其与AnimationController
绑定;animatedBuilder
:动效组件构建方法,根据 AnimationController 的值构建当前状态的组件;completeText
:动画完成后的组件,默认是返回一个具有样式修饰的文字。
来源:https://mp.weixin.qq.com/s/x9lINsXvcBAlk7wNu5aP3A


猜你喜欢
- 假如我们有一张banner_item表,现需要通过banner_id查出所有数据(查询List)@Datapublic class Bann
- 这篇文章主要介绍了Spring Cloud基于zuul实现网关过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学
- 本文实例为大家分享了安卓Button按钮的四种点击事件,供大家参考,具体内容如下第一种:内部类实现 1.xml里面先设置Button属性&l
- 有序链表:按关键值排序。删除链头时,就删除最小(/最大)的值,插入时,搜索插入的位置。插入时需要比较O(N),平均O(N/2),删除最小(/
- 背景项目中要实现横向列表的无限循环滚动,自然而然想到了RecyclerView,但我们常用的RecyclerView是不支持无限循环滚动的,
- 带着问题 往下看 (namesrv)我们在写组件的时候 怎么管理version如果现在让你 维护一个 各个jar包公用的属性System.e
- 前言上节在谈论Bean的实例化过程时,在说明实例化后阶段时只是粗略地看了一下populateBean,并未展开分析。本节接着populate
- 一、添加插件apply plugin: 'maven-publish'二、添加如下配置//打包源码task sourceJa
- foreach拼接字符串查询无数据返回Mybatis-plus xml使用foreach遍历查询条件,填充IN函数时,查询不到数据入参 Li
- 当你的应用需要显示一个进度条或需要用户对信息进行确认时,可以使用alertDialog来完成。下面来介绍常用的四种AlertDialog。1
- 这篇文章主要介绍了跨域解决方案Jsonp原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以
- 1. 问题描述springboot的面世,成为Java开发者的一大福音,大大提升了开发的效率,其实springboot只是在maven的基础
- 本文实例讲述了java实现清理DNS Cache的方法。分享给大家供大家参考。具体分析如下:一、测试环境OS:Windows7 x64JDK
- 动态创建函数大多数同学,都或多或少的使用过。回顾下c#中动态创建函数的进化:C# 1.0中:public delegate string D
- 没人会喜欢空指针异常!有什么方法可以避免它们吗?或许吧。。本文将讨论到以下几种技术1.Optional类型(Java 8中新引入的)2.Ob
- 一.关于使用Mybatisplus自带的selectById和insert方法时的一些问题1.selectById的问题(1).表的主键列名
- 一个简单的Java web服务器实现,比较简单,基于java.net.Socket和java.net.ServerSocket实现;一、程序
- Java是面向对象的编程语言,在我们开发Java应用的程序员的专业术语里,Java这个单词其实指的是Java开发工具,也就是JDK(Java
- 一、概念 工厂方法模式是类的创建模式,又叫虚
- 1、Pull概述Android系统中和创建XML相关的包为org.xmlpull.v1,在这个包中不仅提供了用于创建XML的 X