Anda dapat membuat file animasi .xml Anda sendiri untuk memudar menjadi yang baru Activity
dan memudar saat ini Activity
:
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="500" />
fade_out.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="1.0" android:toAlpha="0.0"
android:fillAfter="true"
android:duration="500" />
Gunakan dalam kode seperti itu: (Inside your Activity
)
Intent i = new Intent(this, NewlyStartedActivity.class)
startActivity(i)
overridePendingTransition(R.anim.fade_in, R.anim.fade_out)
Kode di atas akan memudarkan yang saat ini aktif Activity
dan memudar di yang baru dimulai Activity
menghasilkan transisi yang mulus.
UPDATE : @Dan J menunjukkan bahwa menggunakan animasi Android bawaan meningkatkan kinerja , yang memang saya temukan terjadi setelah melakukan beberapa pengujian. Jika Anda lebih suka bekerja dengan animasi bawaan, gunakan:
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
Perhatikan saya mereferensikan android.R
alih-alih R
mengakses id sumber daya.
PEMBARUAN : Sekarang praktik umum untuk melakukan transisi menggunakan kelas Transisi yang diperkenalkan di API level 19 .
overridePendingTransition(android.R.anim.fadein, android.R.anim.fadeout);
Melihat file-file itu juga dapat memberi Anda petunjuk tentang cara meningkatkan animasi kustom Anda (misalnya dengan membuat fade in bertahan lebih lama daripada fade out).overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
:)Bundle bundle = ActivityOptionsCompat.makeCustomAnimation(getContext(), android.R.anim.fade_in, android.R.anim.fade_out).toBundle(); startActivity(intent, bundle);
Sekadar memposting ulang jawaban oleh oleynikd karena sederhana dan rapi
Bundle bundle = ActivityOptionsCompat.makeCustomAnimation(getContext(), android.R.anim.fade_in, android.R.anim.fade_out).toBundle(); startActivity(intent, bundle);
sumber
Anda juga dapat menambahkan animasi dalam aktivitas Anda, dalam metode onCreate seperti di bawah ini karena overridePendingTransition tidak berfungsi dengan beberapa perangkat seluler, atau tergantung pada pengaturan perangkat ...
View view = findViewById(android.R.id.content); Animation mLoadAnimation = AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.fade_in); mLoadAnimation.setDuration(2000); view.startAnimation(mLoadAnimation);
sumber
@Override public void onBackPressed() { super.onBackPressed(); overridePendingTransition(R.anim.fade_in, R.anim.fade_out); }
Anda juga dapat menggunakan kode ini di file style.xml Anda sehingga Anda tidak perlu menulis apa pun di activity.java Anda
<!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:windowAnimationStyle">@style/AppTheme.WindowTransition</item> </style> <!-- Setting window animation --> <style name="AppTheme.WindowTransition"> <item name="android:windowEnterAnimation">@android:anim/fade_in</item> <item name="android:windowExitAnimation">@android:anim/fade_out</item> </style>
sumber