[android小知识]clearAnimation的事件

在开发过程中可能会遇到动画提前关闭的操作,这个时候我们就会用户clearAnimation();这个方法。但是如果动画已经启动了,这个时候就会触发new Animation.AnimationListener()的onAnimationEnd的方法。

/**
         * 测试动画调用时机
         */
        mMoveTextOut = new TranslateAnimation(0, 777, 0, 0);
        mMoveTextOut.setDuration(5555);
        mMoveTextOut.setInterpolator(new LinearInterpolator());
        mMoveTextOut.setFillAfter(true);

        mMoveTextOut.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {

            }

            @Override
            public void onAnimationEnd(Animation animation) {
                BlueLog.d(TAG, "onAnimationEnd ");
            }

            @Override
            public void onAnimationRepeat(Animation animation) {

            }
        });
        final TextView mMarqueeAnimationTV = (TextView)findViewById(R.id.tv_demo_marquee_test_onAnimationEnd);
        findViewById(R.id.btn_demo_marquee_start).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mMarqueeAnimationTV.startAnimation(mMoveTextOut);
            }
        });
        findViewById(R.id.btn_demo_marquee_stop).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mMarqueeAnimationTV.clearAnimation();
            }
        });


下面是布局片段

 

测试后发现,在动画开时后可以调用clearAnimation触发onAnimationEnd事件。

你可能感兴趣的:(android开发知识,android,动画)