属性动画简单使用

/**
*想要将TextView先向左移出屏幕,然后再移动回来
* 这里我们先是调用了TextView的getTranslationX()方法来获取到当前TextView的translationX的位置,
* 然后ofFloat()方法的第二个参数传入"translationX",紧接着后面三个参数用于告诉系统TextView应该怎么移动
*/

  float curTranslationX = starttext.getTranslationX();
  ObjectAnimator animator = ObjectAnimator.ofFloat(starttext, "translationX", curTranslationX, -500f, curTranslationX);
  animator.setDuration(3000);
  animator.start();

/**
* 还可以TextView进行缩放操作,比如说将TextView在垂直方向上放大3倍再还原
* 这里将ofFloat()方法的第二个参数改成了"scaleY",表示在垂直方向上进行缩放
*/

    ObjectAnimator animator = ObjectAnimator.ofFloat(starttext, "scaleY", 1f, 3f, 1f);
    animator.setDuration(3000);
    animator.start();

/**
* 让TextView先从屏幕外移动进屏幕,然后开始旋转360度,旋转的同时进行淡入淡出操作
* 这里我们先是把三个动画的对象全部创建出来,然后new出一个AnimatorSet对象之后将这三个动画对象进行播放排序,
* 让旋转和淡入淡出动画同时进行,并把它们插入到了平移动画的后面,最后是设置动画时长以及启动动画
*/

    ObjectAnimator moveIn = ObjectAnimator.ofFloat(starttext, "translationX", -500f, 0f);
    ObjectAnimator rotate = ObjectAnimator.ofFloat(starttext, "rotation", 0f, 360f);
    ObjectAnimator fadeInOut = ObjectAnimator.ofFloat(starttext, "alpha", 1f, 0f, 1f);
    AnimatorSet animSet = new AnimatorSet();
    animSet.play(rotate).with(fadeInOut).after(moveIn);
    animSet.setDuration(3000);
    animSet.start();

/**
* 将TextView进行一次360度的旋转
* 这里我们将第二个参数改成了"rotation",然后将动画的初始值和结束值分别设置成0和360
*/

    ObjectAnimator animator = ObjectAnimator.ofFloat(starttext, "rotation", 0f, 360f);
    animator.setDuration(3000);
    animator.start();

/**
* 将一个TextView在5秒中内从常规变换成全透明,再从全透明变换成常规
* 我们还是调用了ofFloat()方法来去创建一个ObjectAnimator的实例,
* 只不过ofFloat()方法当中接收的参数有点变化了。这里第一个参数要求传入一个object对象,
* 我们想要对哪个对象进行动画操作就传入什么,这里我传入了一个textview。
* 第二个参数是想要对该对象的哪个属性进行动画操作,由于我们想要改变TextView的不透明度,
* 因此这里传入"alpha"。后面的参数就是不固定长度了,想要完成什么样的动画就传入什么值,
* 这里传入的值就表示将TextView从常规变换成全透明,再从全透明变换成常规。
* 之后调用setDuration()方法来设置动画的时长,然后调用start()方法启动动画
*/

    ObjectAnimator animator = ObjectAnimator.ofFloat(starttext, "alpha", 1f, 0f, 1f);
    animator.setDuration(3000);
    animator.start();
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值