Solution 1:

Define an animation in res/anim/slide_in_up.xml:

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

and another at res/anim/slide_out_up.xml:

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

Then apply these after to call startActivity:

Intent i2 = new Intent(main.this, test.class);
startActivity(i2);
overridePendingTransition( R.anim.slide_in_up, R.anim.slide_out_up );

There an introduction to Android animation here which may help you further.

Solution 2:

As i googled sliding up transition and landed here but Mark answer is incomplete without transition involved on coming back to the same activity.

Overide finish in activity

@Override
public void finish() {
    super.finish();
    overridePendingTransition(R.anim.slide_from_top,R.anim.slide_in_top);
}

finish()

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                finishAfterTransition();
            }else finish();

slide_from_top.xml

<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="-100%p" android:toYDelta="0%p"
android:duration="@android:integer/config_shortAnimTime"/>

slide_in_top.xml

<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="0%p" android:toYDelta="100%p"
android:duration="@android:integer/config_shortAnimTime"/>