乐趣区

关于android:Android动画进阶指北

原文链接 Android Animation Advanced Tricks

后面的文章介绍了动画的根本应用办法,本文来聊一聊波及到动画的高级技巧,以及一些十分优质的学习资源和动画三方库和框架。

页面之间的过渡动画

惯例的动画都是针对某一页面上的某个元素做动画,这个绝对简略,之前的文章讲了很多。但有时候页面与页面之间也是须要过渡动画的,这个能够增强切换的视觉体验,但最好要留神整个利用内的格调对立,不能 A 到 B 是一种切换款式,B 到 C 却是另外一种。

次要有两类,一是 Activity 之间的切换,二是布局之间的切换。

Activity 之间的切换动画

因为 Activity 的创立与启动以及它的 Window 的创立和显示都是由 Frameworks 来管制的,甚至于 Activity 外面的布局何时加载也是由零碎决定的,所以对于 Activity 之间的切换重大依赖于 Frameworks,而不同版本的安卓,反对的状况还不一样。

传统的做法

这个是针对 于所有安卓 版本都能够应用的办法,也是最简略的形式,就是应用 Activity#overridePendingTransition 办法。

这个办法并不难,具体如何应用能够参考其文档,以及这篇文章,讲的都比较清楚。

应用 Transition

在 Android 4.4 时,零碎中退出了一个叫做 Transition 的货色,专门用于页面之间的切换的,但也仅是限于同一个窗口(也即同一个 Activity 内)的 ViewGroup。在 Android 5.0 时又把 Activity 之间的切换提供了反对,对于 5.0 以上的版本能够应用这个框架来实现切换,会比传统的做法都要业余一些。

具体能够参看官网教程,以及这篇教程和这篇文章,解说的都相当好。

布局之间的过渡切换

这里的布局就是指除 Activity 以外的,比方从一个 ViewGroup 切换到另外一个 ViewGroup。其实 Fragment 实质上就是一个 ViewGroup,所以也蕴含在内。

在 Android 4.4 (Kikat API 19),退出了 Transition frameworks,专门用于解决场景切换,次要是通过 Scene 对象和 Transition 对象。Transition 对象定义具体针对 哪个 ViewGroup 做什么样的动画,而 Scene 对象定义了 ViewGroup 的某一种状态,如突变进入,那么突变前是一个 Scene,齐全可见后又是一个 Scene,而突变的过程则叫 Transition。

能够参看官网文档,以具体理解如何应用 transition。

简单动画的实现逻辑

动画是一个非常复杂且精湛的畛域,千万不要说做个 UI 很容易,或者说写个动画很容易,要想做好动画须要很深的功底,岂但须要对动画框架有深刻的理解,也要对整个视觉 GUI 有深刻的了解,并且须要良好的数学与物理常识。

简单的动画的复杂度体现在两个方面,一个是整体上看起来简单,也就是是很多不同的动画的组合;另外一个是具体的某个属性简单,如简单的门路,简单的工夫变动或者简单的形变。离开说。

看起来简单的动画

这个别是波及泛滥的动画的组合,整体体现上看起来特地简单。就比如说电商可能会有一个购物筐,外面往外飞各种商品的动画。对于这种就是要把它拆解,拆解开来后,其实并不简单。

  • 购物车:能够是突变,一直的从通明变到不通明。或者罗唆不做动画
  • 商品:预约义一组商品,每次随机抉择一个,再抉择随机的地位,而后从底下往上飞(或者从上往下飞),再设置一个随机的速度,也能够加上旋转

这样拆解开来就不简单了。

简单的变幻

这里就要波及一些数学 和物理常识了,比方用一些特地的曲线,非凡的曲面,非凡的形变等。

优良的动画的设计范例

这里就不得不得提到小名顶顶的 Dribbble 了,这里有相当优良的设计资源,其中也有很多动画设计,能够尝试着去实现一下,都很有挑战。

优良的动画相干资源

还有一些资源,特地是开源的库,也十分值得学习和钻研和应用。

MotionLayout

这个并不是三方的,而是官网 AndroidX 中的,相当的弱小,当然应用起来也略简单。具体应用办法能够参考 官网教程和这篇文章。

The Top 27 Android Animation Open Source Projects

这里是一个汇合,外面列出一些优良的动画相干的开源库,都相当的棒。

Android View Animations

有一些针对 View 的十分炫酷的特效,如抖动,缩放和旋转等。它是受一个水果下面的动画库的激发。

Material-Animations

次要是介绍如何应用 Transition frameworks 的。

Lottie

能够把设计软件 Adobe After Effects 间接转成动画。

一些插值器

可看这个和这个

专门用于加载动画

外面有各种神奇的加载特效,十分棒。是一个前端 CSS 加载特效的 Android 上的实现。

教程的示例

这是一个教程集锦,外面也蕴含各种示例,是一个相当不错的学习资源。

另外一个教程和示例

与下面的相似,也是一个集教程与实例在一起的我的项目。

Android Animation Detailed Tutorials

一个我的项目的合集。

原创不易,打赏 点赞 在看 珍藏 分享 总要有一个吧

退出移动版