Android: expansión de animación de elementos compartidos

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.

Supongo que te gusta

Origin blog.csdn.net/zhireshini233/article/details/115189639
Recomendado
Clasificación