android-layout - 如何在android中从左到右动画效果启动启动 Activity (第一个 Activity )

标签 android-layout android-animation android

我在android中做了一个 Activity ,我想要的是当我启动应用程序时,我的应用程序中的第一个 Activity 应该来自左侧并向右滑动动画效果。但我不知道如何实现它,所以可以任何人都可以帮助我或给我一些技巧,以便我可以解决它。我的项目已准备好动画 XML。

提前谢谢你 我的代码:

package com.esp.Estorec.ui;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.AnimationUtils;
import android.widget.RelativeLayout;

public class SplashActivity1 extends Activity implements AnimationListener {
RelativeLayout view;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    view=(RelativeLayout)findViewById(R.id.splash1);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_splash1);
        Animation animationSlideInLeft = AnimationUtils.loadAnimation(this, android.R.anim.slide_in_left);

        animationSlideInLeft.setAnimationListener(new AnimationListener(){
            @Override
            public void onAnimationEnd(Animation animation) {
                // if you need to do something
            }

            @Override
            public void onAnimationRepeat(Animation animation) {    
            }

            @Override
            public void onAnimationStart(Animation animation) {
        }});

        view.startAnimation(animationSlideInLeft);


        new Handler().postDelayed(new Runnable()
        {
            @Override
            public void run()
            {
                handler.sendEmptyMessage(1);
            }
        }, 2000);
    }

    private Handler handler = new Handler()
    {
        @SuppressWarnings("deprecation")
        @Override
        public void handleMessage(android.os.Message msg)
        {
            try
            {
                Intent intent = null;
                intent = new Intent(SplashActivity1.this,
                        SplashActivity2.class);
                startActivity(intent);
                overridePendingTransition(R.anim.animated_activity_slide_left_in, R.anim.animated_activity_slide_right_out);
                finish();
            } catch (Exception e) {

            }
        }
    };
    @Override
    public void onAnimationEnd(Animation animation) {
        // TODO Auto-generated method stub

    }

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

    }

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

    }


}

最佳答案

在你的styles.xml中定义一个新的动画样式,如下

    <style name="MyTheme.Window" parent="@android:style/Animation.Activity">
      <item name="android:activityOpenEnterAnimation">@anim/your_desired_animation</item>
      <item name="android:activityOpenExitAnimation">@anim/your_desired_animation</item>
      <item name="android:activityCloseEnterAnimation">@anim/your_desired_animation</item>
      <item name="android:activityCloseExitAnimation">@anim/your_desired_animation</item>
    </style>

然后在主题(themes.xml)中设置这个样式如下:

<style name="MyTheme" parent="@android:style/Theme">
      <item name="android:windowAnimationStyle">@style/MyTheme.Window</item>
</style>

然后您可以简单地将这些主题设置到您的 AndroidManifest.xml 中的每个 Activity ,如下所示:

<activity 
  android:name="your_activity" 
  android:theme="@style/MyTheme">
</activity>

关于android-layout - 如何在android中从左到右动画效果启动启动 Activity (第一个 Activity ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18207334/

相关文章:

java - 保证 DateFormat 的年份字段只有两位数的便携方法

Android按钮效果和动画

android - 如何在 Android 中用手指手势交换 Imageview 和 TextView

android - 动画边框半径

android - 是否有用于 Fragment 转换的 "setSharedElementsUseOverlay()"方法?

Android Jetpack 导航 : How to get fragment instance of destination in OnNavigatedListener?

java - 如果是的话 super 会做什么吗有人可以解释一下吗

android - 如何避免android中相对布局中的重叠 View ?

android - ConstraintLayout 中 layout_above 的替代方案是什么?

android - 膨胀包含自己的 View 的自定义 View 时出现 StackOverflowError