首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏阿策小和尚

    【Flutter 专题】134 图解动画小插曲之 SVGA 动画

    应用播放 SVGA 2.1 SVGASimpleImage 加载动画 svgaplayer_flutter 支持播放本地动画和网络线上动画,与 Image 加载本地和网络图片类似;SVGA 提供了封装好 ; enum AnimationStatus { /// 动画开始时结束 dismissed, /// 动画开始 forward, /// 逆向动画 reverse, ; forward 动画播放,和尚建议若动画从头开始播放先调用 reset 使动画重置,防止其他操作影响动画起始位置; stop 动画停止,与 Lottie 动画不同,SVGAAnimationController 没有提供对应的暂停方法,和尚将 stop 理解为暂停和停止,若继续播放则调用 forward 即可; reverse 动画反转,即反向播放动画; repeat 动画重复; fling 使用临界阻尼弹簧和初始速度驱动动画 ; 而 Lottie 动画是逐层绘制,将所有的动画拆成多个层级,每个层级 layer 都有一个动画配置,播放时解析多 0 个 layer 的配置,并给每个 layer 做相应的动画; 两种动画模式都是很成熟且应用范围很广的动画

    1.8K40发布于 2021-08-25
  • 来自专栏阿策小和尚

    【Flutter 专题】50 图解动画小插曲之 Lottie 动画

    ,并设置动画的基本属性; a. prepareAnimation 的固定参数是动画资源,不可缺少; b. repeatCount 可设置动画重复的频率;RepeatCount.nTimes 我们也可以动态监听动画状态并进行处理; a. start() 从头开启动画; b. pause() 暂停动画; c. unpause() 从暂停处继续播放动画; d. stopAndReset() 停止动画,rewind 为 true 时结束动画并到动画开始时第一帧;false 为技术动画并到动画最后一帧; Row(children: <Widget>[ Expanded 注意事项 1. dispose() 动画 动画对应用内存占用较大,建议在页面销毁或关闭时将动画销毁; @override void dispose() { super.dispose() ,且内存状态良好,但并非可以替代原生动画,只是丰富了动画开发的多样性;如有错误请多多指导!

    1.8K41发布于 2019-08-12
  • 来自专栏阿策小和尚

    【Flutter 专题】51 图解动画小插曲之 Flare 动画

    和尚前两天学习了一下 Lottie 动画,确实很方便,今天来尝试一下 Flare 动画,学习 Flutter 的朋友对此并不陌生,Flare 可以为 App/游戏/网页等制作酷炫的矢量动画模型 对于动画的制作过程,和尚暂不介绍,一是每个人的使用不同,二是和尚也在摸索过程,设计一个满意的动画需要精心设计与调整;资源区分公开和私有版,可根据右下角是否有 follow 箭头区分,和尚仅尝试一下开源的动画 集成方式 和尚尝试的是 Flare 格式的动画,将 .flr 动画资源添加到本地资源库 images 中;若使用的是 Nima 格式的动画资源,可以尝试 nima 插件; 1. pubspec.yaml ; animation 为制作动画过程中动画名称,且区分大小写,所以建议在编辑动画动画名称更明确,若没有 animation 参数或内容有误,最终展示的时动画的第一帧; ? 动画播放完成的回调;当动画设置的是循环播放则无法监听;当动画为非循环模式时,播放完成第一遍后可监听结果;和尚测试若再次 play('animation') 时动画会重新播放一次,不会一直循环重复,该监听方法只有一次

    1.5K41发布于 2019-08-12
  • 来自专栏阿策小和尚

    【Flutter 专题】131 图解 AnimatedList 动画列表

    和尚在使用列表加载数据项时,为了提高用户浏览体验,在增加删除 Item 项时适当增加一点小动画,于是和尚通过 AnimatedList 简单尝试一下; AnimatedList 源码分析 const this.shrinkWrap = false, this.padding, // 内边距 }) AnimatedList 作为可以在子 Item 数据发生变化时提供简单过渡动画的一类 AnimatedListState 已混入 TickerProviderStateMixin,因此我们的开发的 Page 页可以略去状态混入,可以通过 insertItem & removeItem 为数据增删时调整过渡动画 方式构建的一个优势就是列表项仅在滚动到视图内时才会构建;而 AnimatedListState 需要 GlobalKey 用于与列表交互的媒介,和尚理解每个 Item 都是单独区分开的;和尚先尝试一个 FadeTransition 淡入淡出动画效果 3. animation AnimatedList 的过度动画是通过 AnimatedListItemBuilder 构造器中提供的 Animation 来进行构建的,默认时常是 300ms,和尚多尝试一下其他的过渡动画

    1.3K50发布于 2021-07-30
  • 来自专栏阿策小和尚

    【Flutter 专题】119 图解简易 ACEFrameAnimated 帧动画

    和尚在做 Android 开发时,常常需要 帧动画 来作为作为 loading 动画;而 Flutter 没有直接提供类似于 帧动画 的组件,和尚简单尝试一个简单的 ACEFrameAnimated 帧动画小组件; 和尚理解的 帧动画 其实一系列图片在一段时间内的叠加展示,以达到连贯的动画效果; ACEFrameAnimated 和尚认为,帧动画最重要的两个元素,分别是图片资源和间隔时间 = null) { widget.picList.clear(); } } ---- ACEFrameAnimated 案例源码 ---- 和尚仅实现了最基本的帧动画效果,对于效果的优化还未涉及

    1K61发布于 2021-04-22
  • 来自专栏阿策小和尚

    【Flutter 专题】106 图解 AnimatedWidget & AnimatedBuilder 动画应用

    和尚继续上一节中自定义的 ACEPageMenu 滑动菜单,详细介绍一下涉及到的 AnimatedBuilder 动画,在此之前需要先了解 AnimatedWidget; AnimatedWidget ,AnimatedWidget 已封装好 setState() 状态更新模块,允许将调用中的动画代码中分离出 Widget,而无需单独维护一个 State 状态来保存动画; 案例尝试 和尚尝试 AnimatedBuilder AnimatedBuilder 也是用于构建动画的通用 Widget,是渲染树中的一个独立的类,适用于要提取单独动画效果的较复杂的 Widget;可自动监听来自 Animation ;其中 child 比较特殊,可以作为优化的方向; 如果 builder 函数包含一个不依赖于动画的子树,则一次构建该子树比在每个动画变更时都重新构建子树更为高效;即在 child 中预先定义好 注意事项 和尚在尝试缩放动画过程中,遇到之前不曾注意的地方,即动画起始位置由 origin 和 alignment 共同决定,以 aligment 对齐位置为坐标原点,origin 在此基础上平移起始位置

    1.2K00发布于 2020-12-29
  • 来自专栏阿策小和尚

    【Flutter 专题】71 图解基本隐式动画 Widget

    firstCurve / secondCurve 为两个 Widget 切换时动画效果;动画效果有多种,和尚不在此赘述; firstCurve: Curves.fastOutSlowIn, secondCurve 分析源码可知,AnimatedSwitcher 更加灵活,可自由设置切换动画之间显示隐藏动画效果;当 child Widget 内容或 Key 有变更时,old child 会执行隐藏动画,new child 会执行展现动画; 案例尝试 和尚尝试切换两个基本的方块,但刚开始切换动画时长和反向切换动画时长没有效果,两个 Widget 只有参数更新,动画效果未执行;和尚尝试加入 Key 区分之后正常; return transitionBuilder 为动画构造器,可以自定义动画效果;和尚尝试了两种简单的缩放动画和平移动画,暂未尝试复杂动画;且动画属性与显示隐藏的 switchInCurve / switchOutCurve 动画曲线共同展示效果; // 缩放动画效果 return GestureDetector( onTap: () => setState(() => isChanged = !

    98631发布于 2019-12-30
  • 来自专栏我和未来有约会

    图解-Silverlight做一个简单的动画

    简述: 做一个最简单的动画,这里用到的Microsoft Expression Studio中的Design和Blend。 首先在Design中做好你要做动画的图片,然后将图片导出为Silverlight的Xaml格式。用 Blend新建立一个Silverlight 2项目,将刚才生成的Xaml导入Blend。 在Blend对导入的Xaml做创建控件、命名元素、制作动画状态等处理,简单的写一个控制动画状态的方 法,最终发布即可。 详解: 第一部分:从design到blend 首先先在Design中做好动画的图片。 选中图片,右键选择导出。 此时到了该制作动画的步骤了,这里使用了VisualState“视图状态” 来做,关于视图状态的使用我专门写过一个心得 。

    1.2K50发布于 2018-02-28
  • 来自专栏Java3y

    动画+图解】把经典求和问题吃得透透的!

    图解析: ? 是不是很容易理解,下面我们来看一下题目代码。 题目代码: ? 动图解析: ? 题目代码: ? 动图解析: ? 题目代码: ? 四数之和 通过上面的三个例子,大家是不是把此类求和问题摸的透透的啦,如果能感觉到这个文章写的很用心的话,能给你带来一丢丢的帮助的话,欢迎各位点赞,在看,转发呀!

    79230发布于 2020-12-15
  • 来自专栏新技术

    Elastic-Job2.1.5源码-图解分片算法动画

    大家好,本文给大家介绍一下Elastic-Job 中作业分片算法和分片之后使用Zookeeper事务来提交分片节点 图解分片算法动画 文 | 宋小生 7.4.6 分片算法 先来回顾下分片的过程分为哪几步 2=[2,3,7], 服务器3=[4,5] 如果有3台服务器,分成10片,则每台服务器分到的分片是: 服务器1=[0,1,2,9], 服务器2=[3,4,5], 服务器3=[6,7,8] 可以参考如下动画视频 可以参考如下动画视频: http://mpvideo.qpic.cn/0b78z4aacaaatmaoimrj5zqvbt6dahhqaaia.f10002.mp4? 可以参考如下动画视频: http://mpvideo.qpic.cn/0bf2uiaamaaaeeaog5bj7rqvbiwda2raabqa.f10002.mp4?

    71110编辑于 2022-12-14
  • 来自专栏阿策小和尚

    【云+社区年度征文】图解 AnimatedWidget 和 AnimatedBuilder 动画应用

    fcfe992872f3e20d7c1d3e62a6ffac474c790a81]      和尚继续上一节中自定义的 ACEPageMenu 滑动菜单,详细介绍一下涉及到的 AnimatedBuilder 动画 ,通常是 Animation 或 ChangeNotifier;通过重写 build() 方法来设置动画过程;并在 _AnimatedState 中设置状态的更新 setState();      由此可见 ,AnimatedWidget 已封装好 setState() 状态更新模块,允许将调用中的动画代码中分离出 Widget,而无需单独维护一个 State 状态来保存动画; 案例尝试      和尚尝试 Widget,是渲染树中的一个独立的类,适用于要提取单独动画效果的较复杂的 Widget;可自动监听来自 Animation 对象的通知,无需手动调用 addListener(); 源码分析 class ;其中 child 比较特殊,可以作为优化的方向;       如果 builder 函数包含一个不依赖于动画的子树,则一次构建该子树比在每个动画变更时都重新构建子树更为高效;即在 child 中预先定义好

    72431发布于 2020-12-15
  • 来自专栏阿Q说代码

    醒酒菜:动画图解核心内存区--堆

    图解对象分配过程 对象分配过程 ?

    59510发布于 2021-06-22
  • 来自专栏一条IT

    醒酒菜:动画图解核心内存区--堆

    图解对象分配过程 对象分配过程 new的对象先放伊甸园区,此区有大小限制; 当伊甸园的空间填满时,程序继续创建对象,JVM的垃圾回收器将对伊甸园区进行垃圾回收(Minor GC,也叫YGC):将伊甸园区中的不再被其他对象所引用的对象进行销毁

    32110编辑于 2021-12-04
  • 来自专栏五分钟学算法

    图解数据结构】 一组动画演示冒泡排序

    排序动画过程解释 将天平放在序列的右端,并比较天平左右的数字 在这种情况下我们比较 3 和 8 比较后如果右边的数字较小,则被交换 因为 8 大于 3 ,所以数字不用交换 比较完成后,将天平向左移动一个位置

    52210发布于 2018-12-25
  • 来自专栏阿策小和尚

    【Flutter 专题】128 图解 ColorTween 颜色补间动画 & ButtonBar 按钮容器

    颜色补间差值器,配合 AnimationController 实现两种颜色间的自然过渡;和尚简单尝试一下; ColorTween 源码分析 ColorTween 的源码很简单,继承自 Tween 补间动画

    97320发布于 2021-07-05
  • 来自专栏小詹同学

    图解数据结构】 一组动画演示冒泡排序

    排序动画过程解释 将天平放在序列的右端,并比较天平左右的数字 在这种情况下我们比较 3 和 8 比较后如果右边的数字较小,则被交换 因为 8 大于 3 ,所以数字不用交换 比较完成后,将天平向左移动一个位置

    78320发布于 2019-11-12
  • 来自专栏五分钟学算法

    图解数据结构】 一组动画彻底理解快速排序

    由于LeetCode上的算法题很多涉及到一些基础的数据结构,为了更好的理解后续更新的一些复杂题目的动画,推出一个新系列 -----《图解数据结构》,主要使用动画来描述常见的数据结构和算法。 排序动画过程解释 首先,操作数列中的所有数字 在所有数字中选择一个数字作为排序的基准(pivot), pivot 通常是随机选择的,在这里为了演示方便,我们选择最右边的数字作为 pivot 选取好 pivot 的数字交换 这就完成了第一次操作 小于 6 的都在 6 的左侧,大于 6 的都在 6 的右侧 然后递归对这分成的两部分都执行同样的操作 完成 快速排序 代码实现 为了更好的让读者用自己熟悉的编程语言来理解动画

    92440发布于 2018-12-25
  • 来自专栏五分钟学算法

    图解数据结构】 一组动画彻底理解希尔排序

    由于LeetCode上的算法题很多涉及到一些基础的数据结构,为了更好的理解后续更新的一些复杂题目的动画,推出一个新系列 -----《图解数据结构》,主要使用动画来描述常见的数据结构和算法。 排序动画过程解释 首先,选择增量 gap = 10/2 ,缩小增量继续以 gap = gap/2 的方式 初始增量为 gap = 10/2 = 5,整个数组分成了 5 组 按颜色划分为【 8 , 3 】 1 , 4 , 3 , 5 , 7 , 6 , 9 , 0 】 此时,只需要对以上数列进行简单的微调,不需要大量的移动操作即可完成整个数组的排序 代码实现 为了更好的让读者用自己熟悉的编程语言来理解动画

    3.1K31发布于 2018-12-25
  • 来自专栏五分钟学算法

    图解数据结构】一组动画彻底理解堆排序

    由于LeetCode上的算法题很多涉及到一些基础的数据结构,为了更好的理解后续更新的一些复杂题目的动画,推出一个新系列 -----《图解数据结构》,主要使用动画来描述常见的数据结构和算法。 堆排序 堆排序(Heapsort)是指利用堆这种数据结构(后面的【图解数据结构】内容会讲解分析)所设计的一种排序算法。 排序动画过程解释 首先,将所有的数字存储在堆中 按大顶堆构建堆,其中大顶堆的一个特性是数据将被从大到小取出,将取出的数字按照相反的顺序进行排列,数字就完成了排序 在这里数字 5 先入堆 数字 2 入堆 4 置于堆顶,为了维护好大顶堆的定义,最后一个非叶子节点数字 5 与 4 比较,而后交换两个数字的位置 反复执行调整+交换步骤,直到整个序列有序 代码实现 为了更好的让读者用自己熟悉的编程语言来理解动画

    2.4K10发布于 2018-12-25
  • 来自专栏五分钟学算法

    图解数据结构】 一组动画彻底理解计数排序

    由于LeetCode上的算法题很多涉及到一些基础的数据结构,为了更好的理解后续更新的一些复杂题目的动画,推出一个新系列 -----《图解数据结构》,主要使用动画来描述常见的数据结构和算法。 排序动画过程解释 首先,扫描一下整个序列 获得最小值为 2 ,最大值为 7 新建数组包含 2~7 的元素 再次扫描序列,将序列的值放置在新建数组中 扫描数字 5,数组中 index 为 3 的值为 5, 0 的值为 2 的元素次数变为 0 输出数字 3,同时数组中 index 为 1 的值为 3 的元素次数变为 1 同样的操作,整个序列就完全输出了 代码实现 为了更好的让读者用自己熟悉的编程语言来理解动画

    95930发布于 2018-12-25
领券