如何开始在动画结束活动结束、动画

2023-09-06 13:23:12 作者:你是我遥不可及的梦i

这是我的第一个应用程序,我需要在动画结束时开始新的活动。什么才是我需要做什么?我的code:

 包com.lineage.goddess;

进口android.app.Activity;
进口android.content.Intent;
进口android.os.Bundle;
进口android.view.WindowManager;
进口android.view.animation.Animation;
进口android.view.animation.AnimationUtils;
进口android.widget.TextView;

公共类LineageSplashActivity延伸活动{
    / **第一次创建活动时调用。 * /
    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.splash);
        startAnimation();
        getWindow()setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN)。

    }

    私人无效startAnimation(){
        // TODO自动生成方法存根
        TextView的LOGO1 =(TextView中)findViewById(R.id.TextView1);
        动画fade1 = AnimationUtils.loadAnimation(这一点,R.anim.fade_in);
        logo1.startAnimation(fade1);
        TextView的LOGO2 =(TextView中)findViewById(R.id.TextView2);
        动画fade2 = AnimationUtils.loadAnimation(这一点,R.anim.fade_in);
        logo2.startAnimation(fade2);
        TextView的logo3 =(TextView中)findViewById(R.id.TextView3);
        动画fade3 = AnimationUtils.loadAnimation(这一点,R.anim.fade_in);
        logo3.startAnimation(fade3);
        TextView的logo4 =(TextView中)findViewById(R.id.TextView4);
        动画fade4 = AnimationUtils.loadAnimation(这一点,R.anim.fade_in2);
        logo4.startAnimation(fade4);}
         公共无效onAnimationEnd(){
             意图I =新的意图(LineageSplashActivity.this,LineageMenuActivity.class);
             LineageSplashActivity.this.startActivity(ⅰ);
;
        }
    }
 

解决方案

设置AnimationListener你要用来启动活动的动画。

  myAnimation.setAnimationListener(新AnimationListener(){
    公共无效onAnimationStart(动画动画){}
    公共无效onAnimationRepeat(动画动画){}
    公共无效onAnimationEnd(动画动画){
        意图I =新的意图(LineageSplashActivity.this,LineageMenuActivity.class);
        LineageSplashActivity.this.startActivity(ⅰ);
    }
}
 
某站全资收购绘梦动画,本以为是成功的开始,没想到却是结束

那么,你的code将是这样的:

 包com.lineage.goddess;

进口android.app.Activity;
进口android.content.Intent;
进口android.os.Bundle;
进口android.view.WindowManager;
进口android.view.animation.Animation;
进口android.view.animation.AnimationUtils;
进口android.widget.TextView;

公共类LineageSplashActivity延伸活动{
    / **第一次创建活动时调用。 * /
    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.splash);
        startAnimation();
        getWindow()setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN)。

    }

    私人无效startAnimation(){
        // TODO自动生成方法存根
        TextView的LOGO1 =(TextView中)findViewById(R.id.TextView1);
        动画fade1 = AnimationUtils.loadAnimation(这一点,R.anim.fade_in);
        logo1.startAnimation(fade1);
        TextView的LOGO2 =(TextView中)findViewById(R.id.TextView2);
        动画fade2 = AnimationUtils.loadAnimation(这一点,R.anim.fade_in);
        logo2.startAnimation(fade2);
        TextView的logo3 =(TextView中)findViewById(R.id.TextView3);
        动画fade3 = AnimationUtils.loadAnimation(这一点,R.anim.fade_in);
        logo3.startAnimation(fade3);
        TextView的logo4 =(TextView中)findViewById(R.id.TextView4);
        动画fade4 = AnimationUtils.loadAnimation(这一点,R.anim.fade_in2);
        face4.setAnimationListener(新AnimationListener(){
            公共无效onAnimationStart(动画动画){}
            公共无效onAnimationRepeat(动画动画){}
            公共无效onAnimationEnd(动画动画){
                意图I =新的意图(LineageSplashActivity.this,LineageMenuActivity.class);
                LineageSplashActivity.this.startActivity(ⅰ);
            }
        }

        logo4.startAnimation(fade4);
    }
}
 

This is my first app and i need to start new activity when the animation ends. what do I need to do? My code:

package com.lineage.goddess;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.TextView;

public class LineageSplashActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);
        startAnimation();
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    }

    private void startAnimation() {
        // TODO Auto-generated method stub
        TextView logo1= (TextView) findViewById(R.id.TextView1);
        Animation fade1= AnimationUtils.loadAnimation(this, R.anim.fade_in);
        logo1.startAnimation(fade1);
        TextView logo2= (TextView) findViewById(R.id.TextView2);
        Animation fade2= AnimationUtils.loadAnimation(this, R.anim.fade_in);
        logo2.startAnimation(fade2);
        TextView logo3= (TextView) findViewById(R.id.TextView3);
        Animation fade3= AnimationUtils.loadAnimation(this, R.anim.fade_in);
        logo3.startAnimation(fade3);
        TextView logo4= (TextView) findViewById(R.id.TextView4);
        Animation fade4= AnimationUtils.loadAnimation(this, R.anim.fade_in2);
        logo4.startAnimation(fade4);}
         public void onAnimationEnd() {
             Intent i = new Intent( LineageSplashActivity.this, LineageMenuActivity.class );
             LineageSplashActivity.this.startActivity( i );
;
        }
    }

解决方案

Set an AnimationListener to the animation you want to use to start your Activity.

myAnimation.setAnimationListener(new AnimationListener() {
    public void onAnimationStart(Animation animation) {}
    public void onAnimationRepeat(Animation animation) {}
    public void onAnimationEnd(Animation animation) {
        Intent i = new Intent( LineageSplashActivity.this, LineageMenuActivity.class );
        LineageSplashActivity.this.startActivity( i );
    }
}

So, your code will be like this:

package com.lineage.goddess;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.TextView;

public class LineageSplashActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);
        startAnimation();
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    }

    private void startAnimation() {
        // TODO Auto-generated method stub
        TextView logo1= (TextView) findViewById(R.id.TextView1);
        Animation fade1= AnimationUtils.loadAnimation(this, R.anim.fade_in);
        logo1.startAnimation(fade1);
        TextView logo2= (TextView) findViewById(R.id.TextView2);
        Animation fade2= AnimationUtils.loadAnimation(this, R.anim.fade_in);
        logo2.startAnimation(fade2);
        TextView logo3= (TextView) findViewById(R.id.TextView3);
        Animation fade3= AnimationUtils.loadAnimation(this, R.anim.fade_in);
        logo3.startAnimation(fade3);
        TextView logo4= (TextView) findViewById(R.id.TextView4);
        Animation fade4= AnimationUtils.loadAnimation(this, R.anim.fade_in2);
        face4.setAnimationListener(new AnimationListener() {
            public void onAnimationStart(Animation animation) {}
            public void onAnimationRepeat(Animation animation) {}
            public void onAnimationEnd(Animation animation) {
                Intent i = new Intent( LineageSplashActivity.this, LineageMenuActivity.class );
                LineageSplashActivity.this.startActivity( i );
            }
        }    

        logo4.startAnimation(fade4);    
    }
}