动画可以添加视觉提示,通知用户 应用。当界面更改状态时(例如,当 内容加载或有新操作时可用。动画还为应用增加了优美的外观,使其拥有更高品质的外观和风格。
Android 根据您需要的动画类型提供不同的动画 API。本文档简要介绍了 为界面添加动画效果
如需更好地了解您应何时使用动画,另请参阅 Material Design 动作指南。
为位图添加动画
图 1. 带动画的可绘制对象。
要为位图图形(如图标或插图)添加动画效果,请使用可绘制对象 动画 API。通常,这些动画是使用可绘制对象进行静态定义的 但您也可以定义运行时的动画行为。
例如,向用户传达两项操作是相关的好方法 以动画方式呈现一个播放按钮,当该按钮处于非活动状态时, 已点按。
如需了解详情,请参阅为可绘制图形添加动画效果。
为界面可见性和动作添加动画
图 2. 出现对话框时显示的微妙动画 和消失可以减少界面变化。
如果您需要更改视图在布局中的可见性或位置, 最好添加巧妙的动画,帮助用户了解界面 变化。
要在当前布局中移动、显示或隐藏视图,您可以使用
由 android.animation
软件包提供的属性动画系统(在 Android 3.0 中提供)
(API 级别 11)及更高版本。这些 API 会在一段时间内更新 View
对象的属性,并随着属性的变化不断地重新绘制视图。例如,当您更改
位置属性,则视图会在屏幕上移动。更改 Alpha 值后
属性,视图会淡入或淡出。
如需以最简单的方式创建这些动画,请在布局上启用动画,这样当您更改视图的可见性时,动画就会自动应用。如需了解详情,请参阅自动为布局更新添加动画。
如需了解如何使用属性动画系统构建动画,请参阅 属性动画概览。您 也可以查看以下页面来创建常用动画:
基于物理特性的动作
图 3. 使用 ObjectAnimator 构建的动画。
图 4. 使用基于物理特性的 API 构建的动画。
请尽可能运用现实世界的物理定律来制作动画,以使其看起来更自然。例如,它们应在目标发生变化时保持动量,并在任何变化期间进行平稳过渡。
为了提供这些行为,Android 支持库包含基于物理特性的动画 API,它们依靠物理定律来控制动画的发生方式。
以下是两种常见的基于物理特性的动画:
并非基于物理特性的动画(例如使用 ObjectAnimator
API 构建的动画)相当静态,具有
固定时长如果目标值发生变化,则必须在目标值更改时取消动画,使用新值作为新起始值重新配置动画,并添加新目标值。从直观上看,这一过程
使动画出现突然停止,之后是一个不连贯的运动
如图 3 所示。
使用基于物理特性的动画 API 构建的动画,例如
DynamicAnimation
,主要由
。目标值的变化会导致力的变化。新的
这个力会作用于现有速度,这会在
新定位条件。此过程使动画看起来更加自然,如图 4 所示。
为布局更改添加动画
图 5. 用于显示更多详情的动画可以通过更改布局或启动新 activity 来实现。
在 Android 4.4(API 级别 19)及更高版本中,您可以使用过渡框架来创建在当前 activity 或 fragment 内切换布局时的动画。您只需指定起始和结束布局以及 要使用的动画类型。然后,系统会找出并执行这两种布局之间的动画。您可以使用这种方法换掉整个界面,也可以只移动或替换部分视图。
例如,当用户点按某项内容以查看更多信息时,您可以将 包含商品详情的布局,应用某种转场效果,如上图所示 图 5.
起始和结束布局分别存储在一个 Scene
中,但起始场景通常是根据当前布局自动确定的。您要创建一个 Transition
来告诉系统您所需的动画类型,再调用 TransitionManager.go()
,系统便会运行动画来切换布局。
如需了解详情,请参阅使用转场效果为布局变化添加动画效果。如需示例代码,请查看 BasicTransition ,了解所有最新动态。
在 Activity 之间添加动画
在 Android 5.0(API 级别 21)及更高版本中,您还可以创建在您的 activity 之间过渡的动画。基于相同的过渡 框架,但它允许您创建动画。 单独的 activity 中的布局之间。
您可以应用简单的动画,例如从侧面滑入新 activity 或将其淡入,但您也可以创建在每个 activity 中的共享视图之间过渡的动画。例如,当用户点按某项内容以查看更多信息时,您可以通过动画使该项内容无缝增大以填充屏幕,从而过渡到新的 activity,类似于图 5 所示的动画。
您照常调用 startActivity()
,但是向其传递 ActivityOptions.makeSceneTransitionAnimation()
提供的一组选项。这组选项可能包括在 activity 之间共享哪些视图,以便过渡框架可以在动画期间连接它们。
如需更多资源,请参阅: