È possibile sovrascrivere l'animazione di attività predefinita ed è meglio che eseguire l'override di Transizione. Io uso questa soluzione che funziona per ogni versione di Android. Basta copiare i file 4 incollati e aggiungere uno stile di 4 linee come di seguito:
Creare un "CustomActivityAnimation" e aggiungerlo al tema di base per "windowAnimationStyle".
<!-- 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/colorPrimary</item>
<item name="android:windowAnimationStyle">@style/CustomActivityAnimation</item>
</style>
<style name="CustomActivityAnimation" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/slide_in_right</item>
<item name="android:activityOpenExitAnimation">@anim/slide_out_left</item>
<item name="android:activityCloseEnterAnimation">@anim/slide_in_left</item>
<item name="android:activityCloseExitAnimation">@anim/slide_out_right</item>
</style>
quindi creare cartelle nella cartella anim res e poi creare questa quattro file di animazione in cartella anim:
slide_in_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="100%p" android:toXDelta="0"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
slide_out_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="-100%p"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
slide_in_left .xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="-100%p" android:toXDelta="0"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
slide_out_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="100%p"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
Se dovete affrontare qualsiasi problema, allora si può scaricare il mio sample project from github.
Grazie
fonte
2016-10-09 12:53:01
Ho usato questo codice: 'overridePendingTransition (android.R.anim.fade_in, android.R.anim.fade_out);' Puoi vedere questi esempi in [GmailAnimation] (https://github.com/CabezasGonzalezJavier/GmailAnimation) o [LopeAnimations] (https://github.com/CabezasGonzalezJavier/LopeAnimations). Inoltre puoi vedere di più in questo [Blog] (http://thedeveloperworldisyours.com/android/gmail-overriding-pending-transition/#sthash.CEhJwJLg.dpbs). – Cabezas