Search code examples
androidsplash-screen

Want to animate splash screen on Android


I want to add fade in and fade out to a splash screen after a few seconds of loading. Is there a sample for doing this to my splash layout?


Solution

  • This is an example of slow transition between activities. You can add your own animation:

    public class OneActivity extends Activity
    {
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.one);
            ((Button)findViewById(R.id.next_button)).setOnClickListener(new OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    startActivity(new Intent(OneActivity.this, TwoActivity.class));
                    overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_left);
                }
            });
        }
    }
    

    slide_in_left.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromXDelta="100%p" android:toXDelta="0%p"
        android:duration="@android:integer/config_longAnimTime"/>
    

    slide_out_left.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromXDelta="0" android:toXDelta="-100%p"
        android:duration="@android:integer/config_longAnimTime" />
    

    Fade in and fade out effects:

    <!-- Fade out -->
    <?xml version="1.0" encoding="UTF-8"?>
    <alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:fromAlpha="1.0" android:toAlpha="0.0"
    android:duration="300" />
    
    <!-- Fade in -->
    <?xml version="1.0" encoding="utf-8"?>
    <alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:fromAlpha="0.0" android:toAlpha="1.0"
    android:duration="300" />
    
    <!-- Slide in right and slide out right  -->
    <?xml version="1.0" encoding="utf-8"?>
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromXDelta="-100%p" android:toXDelta="0%p"
        android:duration="@android:integer/config_longAnimTime" />
    
    <?xml version="1.0" encoding="utf-8"?>
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromXDelta="0" android:toXDelta="100%p"
        android:duration="@android:integer/config_longAnimTime" />
    

    Also take a look on Splash Fade, Activity Animations, overridePendingTransition.