Android 单击按钮动画,然后使用其他动画转到其他活动

Android 单击按钮动画,然后使用其他动画转到其他活动,android,Android,我需要一个代码来做按钮动画点击(如旋转或地震或…),并前往其他活动与其他动画按钮动画结束后。 你能帮我吗 我尝试了以下代码: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final Button b=(Button) findViewById(R.id.butt

我需要一个代码来做按钮动画点击(如旋转或地震或…),并前往其他活动与其他动画按钮动画结束后。 你能帮我吗

我尝试了以下代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final Button b=(Button) findViewById(R.id.button1);
    b.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Animation anim=AnimationUtils.loadAnimation(MainActivity.this, R.anim.push_right_in);
            b.startAnimation(anim);
            startActivity(new Intent(getApplicationContext(), Activity2.class));
            overridePendingTransition(R.anim.animation, R.anim.animation2);
但两部动画都是在同一时间开始的,这是正确的

startActivity(new Intent(getApplicationContext(), ActivityTwo.class));
overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_left);

从这个链接:

用这种方式尝试。动画完成时移动到下一个活动

Animation anim=AnimationUtils.loadAnimation(MainActivity.this, R.anim.push_right_in);
        anim.setAnimationListener(new AnimationListener() {

            @Override
            public void onAnimationStart(Animation arg0) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onAnimationRepeat(Animation arg0) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onAnimationEnd(Animation arg0) {
                 startActivity(new Intent(getApplicationContext(), Activity2.class));
                    overridePendingTransition(R.anim.animation, R.anim.animation2);

            }
        });
        b.startAnimation(anim);

创建名为shake.xml的动画文件-

<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
    android:duration="70"
    android:fromDegrees="-5"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatCount="5"
    android:repeatMode="reverse"
    android:interpolator="@android:anim/linear_interpolator"
    android:toDegrees="5" />
<translate
    android:fromXDelta="-10"
    android:toXDelta="10"
    android:repeatCount="5"
    android:repeatMode="reverse"
    android:interpolator="@android:anim/linear_interpolator"
    android:duration="70" />
</set>
关闭onCreate()后,创建如下方法

public void startButtonAnimation(Button btn){
    Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake);
    btn.setAnimation(shake);
    btn.startAnimation(shake);

    shake.setAnimationListener(new AnimationListener() {

        @Override
        public void onAnimationStart(Animation animation) {

        }

        @Override
        public void onAnimationRepeat(Animation animation) {

        }

        @Override
        public void onAnimationEnd(Animation animation) {
            startActivity(new Intent(getApplicationContext(), SecondActivity.class));
            overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right);
        }
    });
}

要获得更多帮助,请让我知道……

使用pendingTransaction进行活动动画…并在按钮上加载动画…您可以给我示例代码吗?@RohitGoswami最好在此处发布您的答案!!用户要求在移动到下一个按钮之前设置按钮的动画screen@Fahim:谢谢你给我的答案!!!!!!!!!!!至少有一半是正确的。因为你这个专家,像我这样的新手总是不敢回答。谢谢您让我们泄气。@EktaParikh您只粘贴了用户在问题中所做的事情-1是为了这个。请再核对一下这个问题。你没有在你的回答中解释他到底要做什么do@EktaParikh我相信你。。你可以从中学到很多东西it@Fahim:没有人!!他尝试了我的答案,然后编辑了他的问题。选中“编辑时间历史记录”。
public void startButtonAnimation(Button btn){
    Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake);
    btn.setAnimation(shake);
    btn.startAnimation(shake);

    shake.setAnimationListener(new AnimationListener() {

        @Override
        public void onAnimationStart(Animation animation) {

        }

        @Override
        public void onAnimationRepeat(Animation animation) {

        }

        @Override
        public void onAnimationEnd(Animation animation) {
            startActivity(new Intent(getApplicationContext(), SecondActivity.class));
            overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right);
        }
    });
}