Transición de escena de Android: Interpolador personalizado?
Tengo una actividad iniciada con una transición de escena con un elemento compartido, y funciona correctamente.
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity(), sharedView, "sharedView"); Intent intent = new Intent(getActivity(), NewActivity.class); ActivityCompat.startActivity(getActivity(), intent, options.toBundle());
El elemento se anima suavemente de la antigua a la nueva actividad. Sin embargo, me gustaría cambiar la animación de la transición un poco, en particular el interpolador. Parece que está utilizando el interpolador liso por defecto, pero me gustaría usar el nuevo interpolador Fast-out-slow-in de material, y no puedo averiguar cómo especificarlo.
- Anulación de transición pendiente con objeto de animación en lugar de id de recurso
- ImageButton mediante Transitions en Android
- No se puede crear una carpeta 'res / transition' después de actualizar SDK a Kitkat 4.4.2
- Android - OutOfMemory mientras decodifica Bitmap de recursos en Android 5.0
- ¿Cómo hacer detector de contador enemigo en libgdx?
¿Qué debo hacer para anular la transición predeterminada?
- Transición del fragmento Android con elemento compartido
- Pase un paquete a startActivityForResult para lograr transiciones de escena
- Android L setEnterTransition no funciona
- Elementos compartidos que animan entre fragmentos
En caso de que aún no lo hayas descubierto:
Cree un nuevo transitionSet
en su /res/transition/
, defina sus etiquetas de transición con sus propiedades e interpoladores y luego aplíquelo a su estilo de actividad en /res/values-v21/styles.xml
Ejemplo para su NewActivity
-
Cree una
new_activity_transition.xml
dentro/res/transition/
que contenga las siguientes etiquetas de transición de ejemplo y sus interpoladores:<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"> <changeImageTransform android:interpolator="@android:interpolator/fast_out_slow_in" /> <arcMotion android:interpolator="@android:interpolator/fast_out_slow_in"/> <changeBounds android:duration="300" android:interpolator="@android:interpolator/fast_out_slow_in"/> </transitionSet>
-
A continuación, establezca como elemento compartido la transición de entrada en su
/res/values-v21/styles.xml
:<style name="NewActivity"> <item name="android:windowSharedElementEnterTransition">@transition/new_activity_transition</item> </style>
-
No olvide establecer el tema de la actividad en su
AndroidManifest.xml
:<activity android:name="{path to}.NewActivity" android:theme="@style/NewActivity"> </activity>