编辑2:新的官方培训指南
开发者网站发布了一个与UI相关的培训指南,以下是目录:
- 动画概述
- 属性动画概述
- 动画绘图
- 使用动画显示或隐藏视图
- 使用动画移动视图
- 使用甩动画移动视图
- 使用缩放动画放大视图
- 使用弹簧物理学动画移动
- 自动动画布局更新
- 使用转换动画动画布局更改
- 创建自定义转换动画
- 使用动画启动活动
如果您对其中任何内容感兴趣,这是链接: https://developer.android.com/training/animation/
编辑:答案总结
我发现在Android中有5种动画方式:
使用属性动画来平滑地更改
旋转
、透明度
、缩放
等视图的属性。帧动画(AnimationDrawable):快速更改图片,使其看起来像是动画。
使用矢量图形(VectorDrawable)设计图像,并通过AnimatedVectorDrawable随时间进行编辑以动画化它们。
覆盖
View
上的onDraw()
并通过在画布上绘制来执行自定义绘制。使用Lottie,它可以重现来自After Effects的动画。许多动画可在LottieFiles上找到。
然而,Android还提供了一些内置工具,例如Scenes
(它允许您在共享Views
的多个布局之间动画转换),Shared elements
(它使您可以在一个Activity
中将View
传递到另一个Activity
)等。
这些功能中的许多(如果不是全部)都是在API 21中添加的,单击此处了解更多信息。
以下是一些有关动画的有趣文章/博客:
谷歌制作的网站material.io上的一个子类别:创意定制。
我们如何设计美丽的动画:使用动态向量训练动画。
无限动画:使用向量进行蓝牙动画。
Android中的帧动画:通过图像旋转填充心形。
最后,还有一些有趣的工具:
注意
我知道Android提供了一些转换,例如缩放
、透明度
、旋转
、平移
等。
示例
有两个示例我想看看并进行比较。
1 - 自定义视图动画
2 - 复杂的视图动画
例如,StackExchange App for Android,登录屏幕动画(找不到视频,也没有检查在iOS中是否表现相同)。
问题
对于第一个示例,我想不出其他方法,只能播放GIF或在短时间内手动更改图像。
我不认为这是情况,所以我想问,(1)你知道它是如何实现的吗?
关于第二个例子,我只有一个想法,那就是设置一个Path
,并通过某种方式在animate()
之后移动View
。 (2)这可能吗?除了上述提到的方法,(3)你知道其他播放动画的技术吗?(例如
场景转换
- 在答案中提到-)请分享!谢谢。