在android上清除setFillAfter()

时间:2012-05-04 13:07:14

标签: android

我使用翻译动画制作视图动画。我已经使用了setFillAfter(true)并且它成功动画了。

我的代码是。

final ImageView image= (ImageView) findViewById(R.id.image2);
        image.setBackgroundResource(R.drawable.lamb);
        final Animation animation = AnimationUtils.loadAnimation(this, R.anim.translate);
        animation.setFillAfter(true);
        image.startAnimation(animation);
        animation.setAnimationListener(new AnimationListener() 
        {
            public void onAnimationStart(Animation animation) {     }
            public void onAnimationRepeat(Animation animation) {    }
            public void onAnimationEnd(Animation animation) 
            {
                Handler ss = new Handler();
                ss.postDelayed(new Runnable() 
                {
                    public void run() 
                    {
                        image.setVisibility(View.INVISIBLE);
                    }
                } ,4000);
            }
        });

我使用Handler在4秒后隐藏图像视图,但它不会隐藏。如何在一段时间后隐藏图像?

动画结束后,我想在最后一个位置显示图像,所以我使用setFillAfter(true); 4秒后我隐藏了图像视图。

如何使图像不可见?

2 个答案:

答案 0 :(得分:0)

您需要设置AnimationListener。当动画结束时,使视图不可见。

moveForward.setAnimationListener(new AnimationListener(){

        @Override
        public void onAnimationEnd(Animation animation) {
            view.setVisibility(View.INVISIBLE);
        }

        @Override
        public void onAnimationRepeat(Animation animation) {
        }

        @Override
        public void onAnimationStart(Animation animation) {
        }

});

答案 1 :(得分:0)

image.clearAniamtion(),在setVisibility之前(View.INVISIBLE)