Android 在我完成活动之前,如何制作动画?

Android 在我完成活动之前,如何制作动画?,android,eclipse,animation,Android,Eclipse,Animation,缩放/缩放动画不会以finish()开始。我希望有一种方法可以做到这一点,而不删除上述声明,因为有必要不要回到当前的活动 代码如下: package com.capstone.mainmobidyx.filipino; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; im

缩放/缩放动画不会以finish()开始。我希望有一种方法可以做到这一点,而不删除上述声明,因为有必要不要回到当前的活动

代码如下:

package com.capstone.mainmobidyx.filipino;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;

import com.capstone.mainmobidyx.R;

public class F_FilipinoYunit1 extends Activity implements OnClickListener {

    Button btnLesson1, btnLesson2, btnLesson3;
    Intent lesson1, lesson2, lesson3;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.f_yunit1);

        btnLesson1 = (Button) findViewById(R.id.btnY1Lesson1);
        btnLesson1.setOnClickListener(this);
        btnLesson2 = (Button) findViewById(R.id.btnY1Lesson2);
        btnLesson2.setOnClickListener(this);
        btnLesson3 = (Button) findViewById(R.id.btnY1Lesson3);
        btnLesson3.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        final Animation zoomAnim = AnimationUtils.loadAnimation(this,R.anim.zoom_in);
        v.startAnimation(zoomAnim);

        switch (v.getId()) {

            case R.id.btnY1Lesson1:

                    lesson1 = new Intent(v.getContext(), SX_Lesson01.class);   
                    startActivity(lesson1);
                    finish();
                    break;

            case R.id.btnY1Lesson2:
                    lesson2 = new Intent(v.getContext(),
                    SX_ScienceLesson02Menu.class);
                    startActivity(lesson2);
                    finish();
                     break;

            case R.id.btnY1Lesson3:
                    lesson2 = new Intent(v.getContext(),
                    SX_Lesson03Menu.class);
                    startActivity(lesson2);
                    finish();
                    break;
            }

       }
}
解决方案:

使用动画端的方法。现在,我可以通过在方法中插入代码,在完成活动之前启动动画

以下是工作代码:

@Override
    public void onClick(final View v) {
        // TODO Auto-generated method stub
        final Animation zoomAnim = AnimationUtils.loadAnimation(this,R.anim.zoom_in);    
        zoomAnim.setAnimationListener(new AnimationListener() {

            public void onAnimationEnd(Animation anim) {

                switch (v.getId()) {

                    case R.id.btnY1Lesson1:  
                        lesson1 = new Intent(v.getContext(), SX_Lesson01.class);  
                        startActivity(lesson1);
                        finish();
                        break;

                    case R.id.btnY1Lesson2:
                         lesson2 = new Intent(v.getContext(),
                         SX_ScienceLesson02Menu.class);
                         startActivity(lesson2);
                         finish();
                         break;

                    case R.id.btnY1Lesson3:
                         lesson2 = new Intent(v.getContext(),
                         SX_Lesson03Menu.class);
                         startActivity(lesson2);
                         finish();
                         break;
                  }

               }
            }

            public void onAnimationRepeat(Animation arg0) {}

            public void onAnimationStart(Animation arg0) {}
        });
        v.startAnimation(zoomAnim);

在动画和finish()/startActivity()上设置一个动画结束侦听器,当动画结束时:

例如:

final Animation animation = AnimationUtils.loadAnimation(this,R.anim.zoom_in);
animation.setAnimationListener(new AnimationListener() {

    public void onAnimationEnd(Animation anim) {
            // Start your new activity and finish() the current activity here!
        }

    public void onAnimationRepeat(Animation arg0) {}

    public void onAnimationStart(Animation arg0) {}
}
animation.startAnimation()