我试图做一些简单的事情,但我不明白为什么它不起作用。
我想做的是:当我触摸 ImageView 时,它会在上面显示动画。然后,只有当该动画结束时,它才会开始新的活动。
相反,发生的情况是新活动立即开始并且不显示动画。
这是动画 xml:
<rotate android:interpolator="@android:anim/decelerate_interpolator"
android:fromDegrees="-45"
android:toDegrees="-10"
android:pivotX="90%"
android:pivotY="10%"
android:repeatCount="3"
android:fillAfter="false"
android:duration="10000" />
这是我用来调用它的代码:
public void onCreate( Bundle savedInstanceState )
{
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 );
v.startAnimation( hang_fall );
Intent i = new Intent( ThisActivity.this, NextActivity.class );
ThisActivity.this.startActivity( i );
}// end onClick
} );
}// end onCreate
正如你所看到的,我尝试为动画投入很长的时间,但它不起作用。下一个活动立即开始,它不会等待此活动中的动画完成。
知道为什么会发生这种情况吗?
那是因为您同时启动意图和动画。您需要在动画结束后启动意图,如下所示:
@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 );
}// end onClick
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)