100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Android属性动画初探之ObjectAnimator

Android属性动画初探之ObjectAnimator

时间:2019-09-20 23:14:10

相关推荐

Android属性动画初探之ObjectAnimator

属性动画

ObjectAnimator

ObjectAnimator使用它的ofFloat方法,来构造一个属性动画

ObjectAnimator.ofFloat(Object target,String propName,float... valuse)

参数讲解

Object traget:表示需要执行动画的目标类

String propName:表示需要变化的属性名称;

float values:表示属性变化的值得范围

示例代码

ObjectAnimator.ofFloat(imageview,"translationX",0F,200F).setDuration(1000).start();

该段语句执行大概就是将 imageview这个对象向着X的方向从位置0移动到位置200,耗时1秒,

对于属性名称的书写,只要是Google对控件可以通过get和set得到的属性在这里都可以进行操作,但是在这里有几个常用的属性操作,介绍如下:

translationX/translationY:沿着X轴/Y轴方向移动(指的是偏移量)

X/Y:也是沿着X或者Y轴方向进行移动,但是区别是这里指的是你移动的相对于坐标的绝对值,也可以理解为移动到具体的坐标点

rotation:设置旋转属性

scaleX/scaleY:设置X轴或者Y轴方向上的缩放属性

alpha:设置透明度属性

另外需要注意的是,ObjectAnimator在调用start方法开始动画是一个异步的过程,也就是说如果这里我同时写了三个动画,调用start,会发现这三个动画是同时执行的,并不是一个顺序的执行过程,而如果需要按照特定的顺序来执行某个复杂的动画集合的话,这里就需要用到 AnimatorSet对象,通过调用AnimatorSet对象的playSequentially(),来控制动画的播放顺序

AnimatorSet还提供playTogether()、with()、after()等一系列方法来控制动画的播放顺序,通过控制控件的单一属性来操纵动画,可以达到更加精确好看的动画效果。

添加动画的监听事件

对属性动画添加监听事件可以通过addListener(AnimatorListener)来实现,里面有一系列的回调方法,如start,end,cancel等等,但是在实际使用中,我们可能并不需要这么多的事件回调,所以一般都会通过addListener(AnimatorListenerAdapter)来选择性的添加需要的回调方法,特别的实用方便

博客的最后以一个用属性动画来完成的自定义控件来作为结尾吧,这是一个弹出式的菜单控件,最早出现在path应用上,来看看效果图

最后的最后,附上Demo的Github地址,由于好久没写博客了,这篇博客也是仓促之下写出来的,Demo中还有很多不足的地方,还望大家海涵

Demo地址:/Fizzzzer/Android_Fizzer_PathMenu

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。