1

我想rotate imageview然后我想开始activityonClickimageview但问题是android系统没有时间来完成animation和启动活动。那么我怎样才能完全显示动画然后调用活动。这是我的 xml 代码:

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fromDegrees="-7"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatMode="reverse"
    android:toDegrees="7" />

而这段代码:

      public void onImageViewClicked(View view){
        switch(view.getId()){
            case R.id.viewstock:
                Animation shakeV = AnimationUtils.loadAnimation(this,     R.anim.shake);
                view.startAnimation(shakeV);
                startActivityForResult(intent, 12);
                break;
            case R.id.about:
                Animation shakeA = AnimationUtils.loadAnimation(this,     R.anim.shake1);


                 view.startAnimation(shakeA);
            Intent aboutIntent = new Intent(MainActivity.this,AboutActivity.class);
            startActivity(aboutIntent);
            break;
    }
}
4

3 回答 3

3

您能否提供您的代码片段来支持您的问题。所以更容易知道你是如何处理动画的。

现在我假设您使用的是标准动画。如果是这种情况,请使用Animation.AnimationListener监听onAnimationEnd(Animation animation)。在那里你开始你的活动。

更多检查这个

希望这会帮助你。

于 2012-09-15T10:08:40.443 回答
3

是的,我的猜测是对的。用于shakeA、shakeV

摇A.setAnimationListener(新的AnimationListener(){

@Override public void onAnimationStart(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationRepeat(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationEnd(Animation animation) { // TODO Start your activity here. startActivity(aboutIntent); // Here you go. } })
于 2012-09-15T10:27:58.443 回答
0

我想最好设置开始活动的持续时间

    @Override
public void onAnimationStart(Animation animation) {

}

@Override
public void onAnimationEnd(Animation animation) {
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            startActivity(aboutIntent); 
        }
    }, 2000);
}

@Override
public void onAnimationRepeat(Animation animation) {

}
于 2020-08-28T19:52:40.513 回答