Android 自动动画布局更新 使用,动画简介  |  Android 开发者  |  Android Developers...

您可以通过动画添加视觉提示,向用户通知应用中的动态。当界面状态发生改变时(例如有新内容加载或有新操作可用时),动画尤其有用。动画还为应用增加了优美的外观,使其拥有更高品质的外观和风格。

Android 根据您需要的动画类型提供不同的动画 API,因此本页概括介绍了向界面添加动作的不同方法。

要更好地了解您应何时使用动画,另请参阅 Material Design 动作指南。

为位图添加动画

c2490e805d3a766430dd64194972b165.gif

图 1. 带动画的可绘制资源

要为位图图形(例如图标或插图)添加动画,应使用可绘制资源动画 API。通常,这些动画是使用可绘制资源进行静态定义的,但您也可以定义运行时的动画行为。

例如,如果在点按播放按钮后以动画的方式转换为暂停按钮,就能很好地告诉用户这两个操作是相关的,按一个按钮会使另一个按钮显示出来。

为界面可见性和动作添加动画

ed80b284020de591e9b1718cdfb383b1.gif

图 2. 在对话框出现和消失时采用巧妙的动画效果会让界面变化显得不那么突兀

当您需要更改视图在布局中的可见性或位置时,您应该加入巧妙的动画效果来帮助用户了解界面的变化情况。

要在当前布局中移动、显示或隐藏视图,您可以使用 Android 3.0(API 级别 11)及更高版本中附带的

为了以最省力的方式创建这些动画,您可以在布局上启用动画,这样当您只是更改视图的可见性时,动画就会自动应用。有关详情,请参阅自动为布局更新添加动画。

如需了解如何使用属性动画系统构建动画,请参阅属性动画概览。或者,参阅以下页面创建常用动画:

基于物理特性的动作

6d0524c7fc19ad0f876cd52fdcea090d.gif

图 3. 使用 ObjectAnimator 构建的动画

1d0c74cc0fb7954edd8eb0453a45d0e3.gif

图 4. 使用基于物理特性的 API 构建的动画

您的动画应尽可能运用现实世界的物理定律,以使其看起来更自然。例如,它们应在目标发生变化时保持动量,并在任何变化期间进行平稳过渡。

为了提供这些行为,Android 支持库包含基于物理特性的动画 API,它们依靠物理定律来控制动画的发生方式。

以下是两种常见的基于物理特性的动画:

非基于物理特性的动画(例如使用

然而,使用基于物理特性的动画 API(例如

为布局更改添加动画

3821134a83bbcc4d7a16dd2f4ccddd41.gif

图 5. 用于显示更多详情的动画可以通过更改布局或启动新 Activity 来实现

在 Android 4.4(API 级别 19)及更高版本中,您可以使用过渡框架来创建在当前 Activity 或 Fragment 内切换布局时的动画。

您只需指定起始和结束布局以及要使用的动画类型。然后,系统会找出并执行这两种布局之间的动画。您可以使用这种方法换掉整个界面,也可以只移动/替换部分视图。

例如,当用户点按某项内容以查看更多信息时,您可以将布局替换为项目详情,应用类似于图 5 所示的过渡。

起始和结束布局分别存储在一个

在 Activity 之间添加动画

在 Android 5.0(API 级别 21)及更高版本中,您还可以创建在您的 Activity 之间过渡的动画。此功能基于上述为布局更改添加动画的相同过渡框架,但它允许您在独立 Activity 中的布局之间创建动画。

您可以应用简单的动画,例如从侧面滑入新 Activity 或将其淡入,但您也可以创建在每个 Activity 中的共享视图之间过渡的动画。例如,当用户点按某项内容以查看更多信息时,您可以通过动画使该项内容无缝增大以填充屏幕,从而过渡到新的 Activity,类似于图 5 所示的动画。

您照常调用 ActivityOptions.makeSceneTransitionAnimation() 提供的一组选项。这组选项可能包括在 Activity 之间共享哪些视图,以便过渡框架可以在动画期间连接它们。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值