View属性动画(基础)

本文主要是学习笔记,学习建议直接去看HenCoder视频教学。
作业原地址:课程作业地址。
交作业地址:交作业。

两部分PropertyAnimator和ObjectAnimator。

PropertyAnimator:

效果不贴了,很简单,简单记录下

位移动画:

imageView.animate().translationX(100);
imageView.animate().translationY(100);
imageView.animate().translationZ(100);

旋转动画:

imageView.animate().rotation(180);
imageView.animate().rotationX(180);
imageView.animate().rotationY(180);

缩放动画:

imageView.animate().scaleX(1.5f);
imageView.animate().scaleY(1.5f);

透明度动画:

imageView.animate().alpha(0.0f);

组合动画:

 imageView.animate()
    .scaleX(1.0f)
    .scaleY(1.0f)
    .alpha(1.0f)
    .translationX(100f)
    .rotation(360);

setDuration:没什么说的,单位是毫秒
setInterpolator:差值器,根据自己需要选择系统提供的,也可以自定义差值器。
PropertyAnimator只能使用系统的属性,如果要为自定义属性添加动画,就需要用到:

ObjectAnimator:

ObjectAnimator也可以实现上面的动画效果,比如X方向位移动画:

ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(imageView, "TranslationX", 0, 200);
objectAnimator.start();

ObjectAnimator使用说明:

  • ObjectAnimator.ofFloat或ObjectAnimator.ofInt根据设置数据类型去选择
  • 第一个参数是要设置动画的对象
  • 第二个是要修改的属性,系统会拼接上"set"去该对象中寻找方法。比如上面X方向位移,系统会去找setTranslationX()方法,属性是不是叫TranslationX不重要,但是方法一定要叫setTranslationX()。所以如果自定义属性动画,一定要实现该属性的setter方法(setter中记得调用invalidate()重绘)。
  • 后面的是变长度参数,如果只设置一个就是属性变化的目标值,两个的话就是初始值和目标值,大于两个中间的都是中间值。因为可以不设置初始值,所以也必须要实现该属性的getter方法
  • ObjectAnimator 的组合动画需要用到AnimatorSet类,animatorSet.playTogether()的参数中填入需要组合的ObjectAnimator实例就行,animatorSet也可以设置时长和差值器,记得调用animatorSet.start()。

哦了,感谢HenCoder

你可能感兴趣的:(View属性动画(基础))