首页 > 解决方案 > 如何将动画添加到启动画面?

问题描述

我不知道为什么,但启动画面的动画根本不起作用。我想我的代码是正确的!.. 我想要的只是在启动画面内容上执行动画。

public class Welcome extends AppCompatActivity {
    Animation topAnim, bottomAnim;
    ImageView imageView;
    TextView textView;

    private static int SPLASH_TIME_OUT=4000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setContentView(R.layout.activity_welcome);
        topAnim = AnimationUtils.loadAnimation(this,R.anim.top_animation);
        bottomAnim = AnimationUtils.loadAnimation(this,R.anim.bottom_animation);

        imageView = findViewById(R.id.imageView3);
        textView = findViewById(R.id.textView);

        imageView.startAnimation(topAnim);
        textView.startAnimation(bottomAnim);

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_welcome);
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent homeIntent =new Intent(Welcome.this,MainActivity.class);
                startActivity(homeIntent);
                finish();
            }
        },SPLASH_TIME_OUT);

    }
}

这些分别是底部和顶部动画 .xml 文件

<translate
    android:fromXDelta="0%"
    android:fromYDelta="100%"
    android:duration="1500" />

<alpha
    android:fromAlpha="0.1"
    android:toAlpha="1.0"
    android:duration="1500" />

<translate
    android:fromXDelta="0%"
    android:fromYDelta="-50%"
    android:duration="2000" />

<alpha
    android:fromAlpha="0.1"
    android:toAlpha="1.0"
    android:duration="1500" />

标签: javaandroidandroid-studioandroid-animation

解决方案


替换此行

getWindow().setContentView(R.layout.activity_welcome);

setContentView(R.layout.activity_welcome);

setContentView(R.layout.activity_welcome);从上面移除

 new Handler().postDelayed(new Runnable() {

推荐阅读