属性动画之旋转——小红包动画

作者: 一盘好书 | 来源:发表于2018-12-25 17:27 被阅读4次

本文主要内容:属性动画实现红包左右摇摆动画。

1.1 介绍

先来看看具体动画的表现形式:

红包动画

需求是希望这个动画播放三次,每次都有一秒的间隔时间。使用重复次数的属性的话,对于两次动画之间的间隔时间没有找到合适的地方进行设置,所以就写了三个同样的动画依次播放。

    private void setRedPacketAnimation() {
        // 动画没有在播放时,并且执行动画的控件没有隐藏
        if (mTitleQuestion.getVisibility() == View.VISIBLE && !animatorSet.isRunning()) {
            ObjectAnimator animator1 = createRedPacketAnimation();
            ObjectAnimator animator2 = createRedPacketAnimation();
            ObjectAnimator animator3 = createRedPacketAnimation();
            animatorSet.play(animator1).after(animator2).before(animator3);
            animatorSet.start();
        }

    }

    private ObjectAnimator createRedPacketAnimation() {
        // 产生一个左右摇摆的动画
        ObjectAnimator animator = ObjectAnimator.ofFloat(mTitleQuestion, "rotation"
                , 0f, 15f, 0f, -15f, 0f, 15f, 0f, -15f, 0f);
        // 设置动画依赖的旋转点
        mTitleQuestion.setPivotX(ScreenUtils.dp2px(this, 16));
        mTitleQuestion.setPivotY(ScreenUtils.dp2px(this, 4));

        animator.setDuration(1000);
        animator.setStartDelay(1000);
        return animator;
    }

ObjectAnimator.ofFloat方法有三个参数,第一个是执行动画的控件,第二个参数,执行哪类型动画,第三个参数为属性值的变化过程,可传入多个不同的数值。

1.2 旋转分类

第二个参数对于旋转动画而言,我们可以分为三类:rotationX,rotationY,rotation。分别对应着以下三种情况。

image.png

我们分别来看看这些动画是如何进行旋转的。rotationX和rotationY这两种情况可以一起来看,如果把x,y轴看成是烧烤棍,我们在烤烧烤的时候,是如何旋转蓝色色块就显而易见了。我们转动x轴或者y轴,这时蓝色色块就像烤肉一样转动起来,转动的方向就是我们动画的方向。

在x轴上转动的整体方向确定了,但是这根烧烤棍具体从哪个位置穿过去,那就得看我们具体设置了。比如以下设置在当前mTitleQuestion这个控件的y=40的位置进行旋转。

mTitleQuestion.setPivotY(40);
image.png

y也可以为任意位置。

y可以为任意位置

同理,非常简单即可推出y轴方向的旋转规律。

接下来,我们来看看最后一种情况,当属性值为rotation时,那么就是在一个平面上进行旋转了,这时默认是以控件中心点为旋转中心点,可以手动设置旋转点,产生的动画就如上面的红包动画所示。

相关文章

  • 属性动画之旋转——小红包动画

    本文主要内容:属性动画实现红包左右摇摆动画。 1.1 介绍 先来看看具体动画的表现形式: 需求是希望这个动画播放三...

  • 动画之属性动画基础篇

    属性动画 属性动画,改变view或者object的属性实现动画,属性动画比补间动画更强大,不但可以实现旋转、平移等...

  • Android动画原理

    动画分类 补间动画 旋转、位移、透明度、缩放 属性动画 同样的属性动画也可以做到对View进行缩放、移动、旋转以及...

  • Android动画——位移动画、旋转动画、缩放动画、渐变动画

    属性动画分类: TranslateAnimation(位移动画)RotateAnimation(旋转动画)Scal...

  • 动画深入研究

    前言 分类 View动画,帧动画,自定义View动画,属性动画 View动画 平移,缩放,旋转,透明Transla...

  • Android 动画

    旋转动画 AnimationUtils.loadAnimationxml文件: Activity中使用: 属性动画...

  • Android动画--View动画(补间动画)

    类型 平移动画 translate 缩放动画 scale 旋转动画 rotate 透明度动画 alpha 共同属性...

  • Android属性动画之旋转动画

    CSDN同步发布[https://blog.csdn.net/leilifengxingmw/article/de...

  • Android动画分类

    动画分类 View动画、帧动画、属性动画 View动画包括:平移、旋转、缩放、透明度,View动画是一种渐近式动画...

  • android动画

    动画: 分类:分为视图动画和属性动画,其中视图动画又分为补间动画和逐帧动画。补间动画又分为平移动画、缩放动画、旋转...

网友评论

    本文标题:属性动画之旋转——小红包动画

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