【问题标题】:want to start activity after completion of animation of imageview想要在imageview的动画完成后开始活动
【发布时间】:2012-09-15 09:56:51
【问题描述】:

我想rotateimageview 然后我想启动imageviewactivity onClick 但问题是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;
    }
}

【问题讨论】:

    标签: android android-layout android-intent


    【解决方案1】:

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

    shakeA.setAnimationListener(new 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.
    
            }
        })
    

    【讨论】:

    • 不要插入两个答案。请编辑第一个答案。
    • 感谢您的提醒。我写这个例子的时候我猜你已经回答了。再次感谢您提供示例。
    【解决方案2】:

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

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

    更多信息请查看this

    希望对您有所帮助。

    【讨论】:

      【解决方案3】:

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

          @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) {
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-15
        • 2016-03-06
        • 1970-01-01
        • 1970-01-01
        • 2011-09-06
        • 1970-01-01
        • 1970-01-01
        • 2012-12-30
        相关资源
        最近更新 更多