animación

Introducción:

       Agregar algunas animaciones a la aplicación hará que nuestra aplicación sea muy deslumbrante, como la forma más sencilla de apagar y encender la actividad. Por supuesto, las animaciones de control personalizadas son definitivamente esenciales ~ Y las animaciones en Android se dividen en tres categorías, cuadro por cuadro Animación (Frame) y animación de interpolación (Tween) , así como animación de propiedad (Property) introducida después de Android 3.0

1. Animación de fotogramas El archivo de recursos de la animación de fotogramas se coloca en la carpeta dibujable

  1. crear proyecto

  2. Importe recursos, coloque recursos de imagen en la carpeta mipmap

  3. Escriba el archivo de recursos cat_gif.xml en la carpeta dibujable

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@mipmap/img_miao1"
        android:duration="80"/>
    <item android:drawable="@mipmap/img_miao2"
        android:duration="80"/>
    <item android:drawable="@mipmap/img_miao3"
        android:duration="80"/>
    <item android:drawable="@mipmap/img_miao4"
        android:duration="80"/>
	。。。

</animation-list>

   4. En la página xml, agregue <Imageview> y configure su fondo

<ImageView
    android:id="@+id/im_cat"
    android:layout_width="340dp"
    android:layout_height="340dp"
    android:background="@drawable/cat_gif"/>

   5. En el archivo java, obtenga la vista de imagen y anime su fondo

public class MainActivity extends AppCompatActivity {

    private ImageView im_cat;
    private AnimationDrawable anim;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        im_cat = findViewById(R.id.im_cat);

        anim = (AnimationDrawable) im_cat.getBackground();

    }
}

   6. Enciende la animación

public class MainActivity extends AppCompatActivity {

    private ImageView im_cat;
    private AnimationDrawable anim;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        im_cat = findViewById(R.id.im_cat);

        anim = (AnimationDrawable) im_cat.getBackground();

        anim.start();
    }
}

2. El archivo de recursos de tween animation tween animation se coloca en la carpeta anim

 2.1 ¿ Cuántos tipos de animaciones interpoladas existen?

    1. AlphaAnimation (gradiente de transparencia)

       anim_alfa.xml:  

<alpha xmlns:android="http://schemas.android.com/apk/res/android"  
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"  
    android:fromAlpha="1.0"  
    android:toAlpha="0.1"  
    android:duration="2000"/>

Atributo explicación:

  • fromAlpha: transparencia inicial

  • toAlpha : fin de la transparencia

  • El rango de transparencia es: 0-1, completamente transparente - completamente opaco

        

2.ScaleAnimation (gradiente de escala)

anim_escala.xml

<scale xmlns:android="http://schemas.android.com/apk/res/android"  
    android:interpolator="@android:anim/accelerate_interpolator"  
    android:fromXScale="0.2"  
    android:toXScale="1.5"  
    android:fromYScale="0.2"  
    android:toYScale="1.5"  
    android:pivotX="50%"  
    android:pivotY="50%"  
    android:duration="2000"/>

 Atributo explicación:

  • fromXScale / fromYScale : la relación inicial de escalado a lo largo del eje X/eje Y

  • toXScale / toYScale : escala final a lo largo del eje X/eje Y

  • pivotX / pivotY : coordenadas X/Y del punto del eje central ampliado, es decir, la posición desde el borde izquierdo de sí mismo, por ejemplo, el 50 % es el centro de la imagen como punto del eje central

3.TranslateAnimation (gradiente de desplazamiento)

anim_translate.xm :

<translate xmlns:android="http://schemas.android.com/apk/res/android"  
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"  
    android:fromXDelta="0"  
    android:toXDelta="320"  
    android:fromYDelta="0"  
    android:toYDelta="0"  
    android:duration="2000"/>
  • fromXDelta / fromYDelta : coordenadas X/Y de la posición de inicio de la animación

  • toXDelta / toYDelta : coordenadas X/Y de la posición final de la animación

4. RotateAnimation (gradiente de rotación)

anim_rotar.xml

<rotate xmlns:android="http://schemas.android.com/apk/res/android"  
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"  
    android:fromDegrees="0"  
    android:toDegrees="360"  
    android:duration="1000"  
    android:repeatCount="1"  
    android:repeatMode="reverse"/>

Atributo explicación:

  • fromDegrees / toDegrees : ángulo de rotación inicial/final

  • repeatCount : El número de rotaciones, el valor predeterminado es 0, representando una vez, si son otros valores, como 3, rotará 4 veces. Además, cuando el valor es -1 o infinito, significa que la animación nunca se detendrá

  • repeatMode : establece el modo de repetición, el valor predeterminado es restart , pero solo es válido cuando el repeatCount es mayor que 0 o infinito o -1. También se puede configurar para invertir , lo que significa que cuando la animación se muestra un número par de veces, ¡se moverá en la dirección opuesta!

5. AnimationSet (gradiente combinado)

Es muy simple, es solo una combinación de las animaciones anteriores~

anim_set.xml :

<set xmlns:android="http://schemas.android.com/apk/res/android"  
    android:interpolator="@android:anim/decelerate_interpolator"  
    android:shareInterpolator="true" >  
  
    <scale  
        android:duration="2000"  
        android:fromXScale="0.2"  
        android:fromYScale="0.2"  
        android:pivotX="50%"  
        android:pivotY="50%"  
        android:toXScale="1.5"  
        android:toYScale="1.5" />  
  
    <rotate  
        android:duration="1000"  
        android:fromDegrees="0"  
        android:repeatCount="1"  
        android:repeatMode="reverse"  
        android:toDegrees="360" />  
  
    <translate  
        android:duration="2000"  
        android:fromXDelta="0"  
        android:fromYDelta="0"  
        android:toXDelta="320"  
        android:toYDelta="0" />  
  
    <alpha  
        android:duration="2000"  
        android:fromAlpha="1.0"  
        android:toAlpha="0.1" />  

</set>  

Resumir:

El proceso utilizado por la interpolación de animación:

        1. Elija qué interpolación de movimiento usar

        2. Crear archivos de recursos bajo anim

        3. Usa AnimationUtils para cargar el efecto

        4. Iniciar animación

Supongo que te gusta

Origin blog.csdn.net/shuo277/article/details/126014726
Recomendado
Clasificación