android支持两种动画api,Android动画的另一种思路-Transition API

| 传统的动画实现

Android UI界面动画效果的实现,一般是依赖于三种: a.Tweened Animations-补间动画,包括旋转、平移、缩放、透明度渐变等; b.Frame-by-Frame Animations-帧动画,一帧一帧的播放;(有些地方也叫Drawable Animations) c.Property Animations-属性动画,view或object的属性动画;

前两种同属于View Animation,实现对view的动画,Android3.0以后增加了Property Animations,区别于以上两种,可以对view或者Object进行动画效果的实现,他们都属于Animations的范畴,具体的使用可参考:

【Android 基础】Animation 动画介绍和实现

Android 属性动画(Property Animation) 完全解析 (上)

Android 属性动画(Property Animation) 完全解析 (下)

Android动画分类

今天我们的主角不是上述的Animations,而是Android 4.4(KitKat)提供的一个框架Android Transition API; | Transition framework

/ 介绍

Android 4.4 引入了 Scenes(场景) 和 Transitions(场景和变换),Scene 保存了布局的状态,包括所有的控件和控件的属性。 布局可以是一个简单的视图控件或者复杂的视图树和子布局。 保存了这个布局状态到 Scene 后,我们就可以从另一个场景变化到该场景。 从一个场景到另一个场景的变换中会有动画效果,这些动画信息就保存在 Transition 对象中。 要运行动画,我们要使用 TransitionManager 实例来应用 Transition。 图例如下:

290b0ec403a52c48439e64722ab478a0.png

这样就清晰多了。

/ 具有的特性如下:

Group-level animations: the ability to animate the whole hierarchy of View objects. Developer pointsViewGroup and animations automatically apply to each of its elements; 组件层级的动画

Transition-based animation 基于过渡的动画

Built-in animations: simple animations such as dissolution, darkening, resizing, movement, etc. 内建动画

Resource file support: developers can create animations from resource files without writing code 资源文件支持

Lifecycle callbacks: provides all the necessary methods of control over the playback 生命周期回调

/ 存在的问题和限制

在那些不在UI线程中工作的View,比如SurfaceView或者TextureView中使用的时候不流畅。 AdapterView,比如ListView,当你需要针对列表中某个单独的元素使用动画的时候。

偶尔会在resize TextView的时候会出现同步的问题:在另一个对象的改变结束的之前,字体会提前出现在下一个场景中。

**/ 简单使用 **一个比较简单的加载场景的动画

Scene scene2 = Scene.getSceneForLayout(rootView, R.layout.scene2, this);

TransitionManager.go(scene2, new ChangeBounds());

使用上比较简单高效,更多使用方法,请参考给出的文章链接;

| 相关参考:

Android Transitions

Using Transitions API to Create Android App Animations

官方文档

坚持原创技术分享,您的支持将鼓励我继续创作!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值