美文网首页
属性动画只能运行一次吗,非也

属性动画只能运行一次吗,非也

作者: 离人歌 | 来源:发表于2017-02-20 15:01 被阅读77次

写了个属性动画

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ObjectAnimator.ofFloat(imageView,"translationY",-100).start();

        }
    });

发现这个按钮无论点多少次都是只执行了第一次,why?

加log

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.i("属性动画","translationY"+imageView.getTranslationY());
            ObjectAnimator.ofFloat(imageView,"translationY",-100).start();
        }
    });

打印如下

属性动画: translationY0.0 //第一次点击
属性动画: translationY-100.0 // 第二次点击
属性动画: translationY-100.0 //第三四五...

说明属性动画执行的时候是更改了对象属性的,更改之前和更改之后的属性如果都相同,那等同于没改,所以要想每次让对象执行一次,就要实时更新对象的属性值,如下:

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ObjectAnimator.ofFloat(imageView,"translationY",imageView.getTranslationY()-100).start();

        }
    });

相关文章

  • 属性动画只能运行一次吗,非也

    写了个属性动画 发现这个按钮无论点多少次都是只执行了第一次,why? 加log 打印如下 说明属性动画执行的时候是...

  • 2019-11-11

    属性动画 ValueAnimation: 如果动画设置运行时间过长,即便退出activity后动画也仍然在运行,会...

  • PropertyAnimation

    一、ValueAnimator ValueAnimator是整个属性动画机制当中最核心的一个类。属性动画的运行机制...

  • QML Book 第五章 动态元素 2

    5.1.4 分组动画 通常的动画会比一个属性的动画更加复杂。我们可能希望同时运行多个动画,或者一个接一个地运行动画...

  • Android几种动画的总结(属性动画)

    属性动画 属性动画是在Android 3.0 中引入的,在补间动画中,我们只能改变View的绘制效果,并没有让Vi...

  • iOS View Animations and Layer An

    一. View Animations 一些属性介绍 duration: 动画运行时间 delay: 在开始动画之前...

  • android 动画分享

    动画分三种:View动画,帧动画,属性动画。 View 动画 概述: 一般只能修改组件(View Object)的...

  • 动画

    属性动画篇 ValueAnimator(对值进行平滑的过渡) 属性动画的运行机制是通过不断地对值进行操作来实现的,...

  • 动画深入分析(艺术探索读书笔记)

    动画分类:帧动画、View动画、属性动画 View动画 只能作用在View上面的动画,我们平时常用的五个动画类都是...

  • Vue css 旋转木马

    transform 属性应用 translate3d、rotate @keyframes 线性动画 运行效果 代码

网友评论

      本文标题:属性动画只能运行一次吗,非也

      本文链接:https://www.haomeiwen.com/subject/ewhewttx.html