Skip to content →

[Android] Animasi Transisi Perpindahan Layout

Maaf baru bisa kembali menulis setelah sekian lama. Huehue… Ada yang request cara transisi atau pindah halaman activity agar lebih halus. Cukup mudah sebenarnya dan cukup banyak di-share di google tapi saya coba turut bantu share deh.

Jadi transisi yang saya maksud itu perpindahan layout semacam sliding ke kanan, kiri, atas atau kebawah. Tinggal bikin file *.xml untuk perpindahannya, ada 2 untuk fade in dan fade out.

Fade In : animasi untuk masuk ke suatu activity. Semisal startActivity() atau show() dan semacamnya.

Fade Out : animasi untuk keluar dari suatu activity. Semisal finish() atau cancel() dan semacamnya.

 

  1. Buat folder bernama anim didalam folder res. Sejajar dengan folder layout, drawable, dan teman2nya.
  2. Buat file xml didalam folder anim.
    fade_in.xml

    <?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="3000" />
    

    fade_out.xml

    <?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/decelerate_interpolator" android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="5000" />
    

    Kira-kira bentuknya begini

  3. Nah dibagian java-nya, beri satu baris dibawah ini untuk ber-transisi:
    overridePendingTransition(R.anim.fade_out, R.anim.fade_in);

 

Masih banyak animasi-animasi transisi selain xml diatas. Coba aja search di Google huehuee…

Full code dibawah adalah Splash Screen. Ketika muncul beberapa saat akan berpindah halaman atau activity disertai animasi transisi.

public class SplashActivity extends Activity{
    private final int SPLASH_TIMEOUT = 3000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_splash);

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent i = new Intent(SplashActivity.this, LoginActivity.class);
                startActivity(i);
                finish();
                overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
            }
        }, SPLASH_TIMEOUT);
    }
}

Published in Android Java

3 Comments

  1. ibia ibia

    Thanks gan membantu sekali.. ~

    • rioswarawan rioswarawan

      senang bisa membantu bung ibia

  2. panggilakurio panggilakurio

    Akhirnyaaa nulis lagi

Leave a Reply

Your email address will not be published. Required fields are marked *