1. Expansión de animación de elementos compartidos
La animación de elementos compartidos de Android es una especie de animación de transición posterior a Android 5.0 . El más utilizado por los desarrolladores es este campo nombre de transición y el código de colocación común:
val transitionActivityOptions = ActivityOptions.makeSceneTransitionAnimation(this, Pair(view,transitionName))
startActivity(Intent(this,MainActivity::class.java), transitionActivityOptions.toBundle())
2. Expansión de funciones
Nuestras animaciones de elementos compartidos comunes son: changeImageTransform , changeClipBounds , changeBounds , fade, etc. Además de estos, podemos agregar nuestras propias animaciones de elementos compartidos personalizados, por lo que esta biblioteca ha agregado ReColor y ReRadius para la animación RBG de color de texto, y el radio animación de las esquinas redondeadas en el diseño.
<transition class="XXXXXXX"/>
Añadir a transitionSet de botones
Tres, la representación de la biblioteca de expansión
Cuarto, el principio de realización:
En SharedElementCallback este método de análisis obtenido enCaptureSharedElementSnapshot este método, podemos extraer la Vista inicial al elemento, incluyendo el ancho y alto, posición, color, etc., el resultado generado es un Parcelable , ya que hasta la respuesta, entonces podemos empaquetarlo. Para este Parcelable , necesitamos extraer información de Activity1 a una clase que hereda Parcelable y pasarla a otra página.
Luego Activity2 en onCreateSnapshotView y onSharedElementStart se ocupan de lo que tenemos.
5. Uso rápido: agregue una referencia a Jitpack en build.gradle del directorio raíz
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Introduzca en build.gradle del módulo:
dependencies {
implementation 'com.github.ShowMeThe:Transition:1.0.0-release'
}
Cree xml en la resolución / transición del proyecto:
<?xml version="1.0" encoding="utf-8"?>
<transitionSet android:duration="xxxx" xmlns:android="http://schemas.android.com/apk/res/android">
<transition class="com.show.element.transition.Recolor"/>
<transition class="com.show.element.transition.ReRadius"/>
</transitionSet>
Agrega el método setExtraShareElementCallBack () a las dos actividades que necesitan animación . Este método es un método de extensión.