美文网首页Android开发Android知识Android
工作日记第八篇(闲着无聊撸了一发属性动画ObjectAnimat

工作日记第八篇(闲着无聊撸了一发属性动画ObjectAnimat

作者: We7ex | 来源:发表于2016-08-23 11:47 被阅读603次

还记得以前小时候玩GBA口袋妖怪,神奇宝贝进化的时候就有一个动画。现在就用属性动画来实现他吧~

先上传一张效果图

IMG_2767.mp4_1471923480.gif
public class MainActivity extends AppCompatActivity {

    Button btn_start;
    ImageView imageView;

    float[] moveArray = new float[30];

    final int[] imgSource = new int[]{R.mipmap.little, R.mipmap.middle, R.mipmap.max};

    int repeatCount = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        for (int i = 0; i < moveArray.length; i++) {
            if (i % 2 == 0) {
                moveArray[i] = 0f;
                continue;
            }
            moveArray[i] = 20f;
        }
        btn_start = (Button) findViewById(R.id.btn_start);
        imageView = (ImageView) findViewById(R.id.imageView_animation);
        imageView.setImageResource(imgSource[repeatCount]);
        btn_start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                ObjectAnimator ob1 = ObjectAnimator.ofFloat(imageView, "translationX", moveArray);
                ObjectAnimator ob2 = ObjectAnimator.ofFloat(imageView, "scaleX", 1f, 0.7f, 5f);
                ObjectAnimator ob3 = ObjectAnimator.ofFloat(imageView, "scaleY", 1f, 0.7f, 5f);
                ObjectAnimator ob4 = ObjectAnimator.ofFloat(imageView, "alpha", 1f, 0f);

                final AnimatorSet animationSet = new AnimatorSet();
                animationSet.setDuration(1000);

                AnimatorSet animationSet1 = new AnimatorSet();
                animationSet1.playTogether(ob2, ob3, ob4);
                animationSet1.setDuration(500);

                //AnimatorSetq 嵌套使用
                animationSet.playSequentially(ob1, animationSet1);

                animationSet.start();
                animationSet.addListener(new Animator.AnimatorListener() {
                    @Override
                    public void onAnimationStart(Animator animation) {

                    }

                    @Override
                    public void onAnimationEnd(Animator animation) {
                        repeatCount++;
                        //全部复原
                        imageView.setAlpha(1f);
                        imageView.setScaleX(1f);
                        imageView.setScaleY(1f);

                        if (repeatCount == imgSource.length) {
                            repeatCount = -1;
                            return;
                        }
                        imageView.setImageResource(imgSource[repeatCount]);

                        animationSet.start();
                    }

                    @Override
                    public void onAnimationCancel(Animator animation) {

                    }

                    @Override
                    public void onAnimationRepeat(Animator animation) {

                    }
                });
            }
        });
    }
}

/
主要想说的就是AnimatorSet最强大的地方就是play、with、after、before可以解决所有动画播放的顺序问题,再加上嵌套使用以及添加监听器可以组合处多种花样的动画。
另外因为AnimatorSet没有setRepeatMode以及setRepeatCount的方法,所以也可以在
/

 @Override
        public void onAnimationEnd(Animator animation) {
      animationSet.start();
}

再次调用animatorSet的start()方法实现循环的作用,加上自己的判断条件就可以设置循环的次数。

相关文章

  • 工作日记第八篇(闲着无聊撸了一发属性动画ObjectAnimat

    还记得以前小时候玩GBA口袋妖怪,神奇宝贝进化的时候就有一个动画。现在就用属性动画来实现他吧~ 先上传一张效果图 ...

  • Android之属性动画

    1、概述 属性动画(Property Animation)包括ValueAnimator和ObjectAnimat...

  • 吃醋了

    吃醋了,甚至还想撸一发。

  • 闲着无聊

  • 闲着无聊

    推窗,拂去木阁的灰尘 沏一壶龙井呈案 幽幽飘出一道斜烟 叹一句时光匆匆 只见窗外阳光明媚 小池清波潋滟 急奔于亭品...

  • 自定义属性动画框架

    通过本篇文章,你将会了解 安卓属性动画的基本架构 插值器和估值器在动画中的作用 手撸属性动画 设想一下,如果你是g...

  • 切记,不要做一个无聊的人!

    罗曼·罗兰所说:“生活中最沉重的负担不是工作,而是无聊。” 什么是无聊?就是觉得干什么都没劲!只想闲着,但是闲着闲...

  • 闲着很无聊

    先是因为工资闹罢工,然后是出了几起安全事故,惊动了文莱政府,最后要求整体停工整顿,加强安全培训学习。 闲着的时光很...

  • 2021.9.27|闲着无聊

    文|吟花飞 今日头条上推荐一个大家参与的讨论,讨论的话题是:人生路上,当你迷茫的时候,你会怎么做? 迷茫,我年轻时...

  • 属性动画学习使用总结

    Android 属性动画总结 属性动画的优点 属性动画的使用步骤 实例化属性动画对象 设置属性动画的时长 启动属性...

网友评论

    本文标题:工作日记第八篇(闲着无聊撸了一发属性动画ObjectAnimat

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