[Android]点击按钮进入下一个Activity时显示动画效果

动画效果写在xml里,

在按键的onClickListener里如果写成这样

1
2
3
4
5
6
7
8
@Override
       public void onClick( View v )
       {
           Animation hang_fall = AnimationUtils.loadAnimation( Curriculum.this, R.anim.hang_fall );
           v.startAnimation( hang_fall );
           Intent i = new Intent( ThisActivity.this, NextActivity.class );
           ThisActivity.this.startActivity( i );
       }

那么Intent和animation是同时执行的,看不到动画效果,

应该这样写——加入一个AnimationListener

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
final ImageView ib = (ImageView)this.findViewById( R.id.photo );
    ib.setOnClickListener( new OnClickListener( ) {
 
        @Override
        public void onClick( View v ) {
    Animation hang_fall = AnimationUtils.loadAnimation(Curriculum.this, R.anim.hang_fall );
    hang_fall.setAnimationListener(new Animation.AnimationListener()
        {
            public void onAnimationEnd(Animation animation)
            {
                Intent i = new Intent( ThisActivity.this, NextActivity.class );
                ThisActivity.this.startActivity( i );
            }
 
            public void onAnimationRepeat(Animation animation)
            {
                // Do nothing!
            }
 
            public void  onAnimationStart(Animation animation)
            {
                // Do nothing!
            }
        });
    v.startAnimation( hang_fall );
} );
原文地址:https://www.cnblogs.com/greywolf/p/2826405.html