ViewAnimator en Android con ejemplo

ViewAnimator es una función muy fascinante y útil, ya que cambia entre dos o más vistas sin problemas y está destinada principalmente a las funciones de animación de las vistas en las pantallas. Es la clase principal de ViewFlipper y ViewSwitcher y la distinción principal es que también puede cambiar entre más de 2 vistas. Es una subclase de FrameLayout Container. La siguiente es la forma de definir ViewAnimator:

XML

<ViewAnimator
                
    android:id="@+id/simpleViewAnimator1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
  
    <!--   You need to add views here  -->
  
</ViewAnimator>

 
La animación significa que aparentemente solo una vista puede estar activa en un momento y, por lo tanto, hay muchos métodos importantes disponibles para que el flujo sea fluido.

Métodos importantes

Métodos

Descripción

 mostrarSiguiente()

El nombre del método se explica por sí mismo. Esto se usa para mostrar la 

siguiente vista de ViewAnimator. Solo una vista puede estar activa en este momento.

 mostrarAnterior()

El nombre del método se explica por sí mismo. Esto se usa para mostrar la

 vista previa de ViewAnimator. Solo una vista puede estar activa en este momento.

addView(Ver niño)

En tiempo de ejecución, si queremos agregar una vista, podemos usar esto. 

Agregue la vista secundaria en tiempo de ejecución en ViewAnimator.

setInAnimation(en) Establecer la animación de la apariencia del objeto en la pantalla
setOutAnimation(fuera)

Opuesto a setInAnimation(). El anterior se elimina usando

un conjunto de animación con el método setOutAnimation(), y luego 

coloca el nuevo utilizando la animación establecida por el método setInAnimation().

 obtenerVistaActual() Vista secundaria mostrada actualmente de ViewAnimator.
getDisplayedChild() Índice de la vista secundaria mostrada actualmente de ViewAnimator.
getInAnimation()

Animación actual utilizada para animar una vista que ingresa a la pantalla 

se puede obtener por este método. Este método devuelve la animación.

que configuramos usando el método setInAnimation().

 getOutAnimation()

Animación actual utilizada para animar una vista que sale de la pantalla

se puede obtener por este método. Este método devuelve la animación de salida que configuramos usando el método setoutAnimation().

removeAllViews() Para eliminar todas las vistas secundarias de ViewGroup.
 removeView(Ver vista)

Para eliminar la vista secundaria de ViewAnimator. Podemos hacer eso pasando por alto el

vista infantil que queremos eliminar.

removeViewAt(índice int)

 Si hay un requisito como eliminar una vista en la posición especificada

en el grupo, podemos usar esto.

setDisplayedChild(int whichChild) Para establecer el índice de la vista secundaria mostrada actualmente de ViewAnimator
setAnimateFirstView(animación booleana)

La vista actual debe animarse la primera vez en ViewAnimator

se puede mostrar como valor verdadero o falso.

getAnimateFirstView() Si hemos configurado la vista actual animada en verdadero/falso.

Atributos de ViewAnimator

Atributos

Descripción

identificación Para identificar de forma única un ViewAnimator.
animarPrimera vista Si queremos configurar la vista actual como animada, podemos tener este atributo
enAnimación El identificador de la animación que se utilizará cuando se muestre una vista.
fueraAnimación El identificador de la animación para usar cuando una vista está oculta
relleno establezca el relleno desde el lado izquierdo, derecho, superior o inferior de un ViewAnimator.

Ejemplo

qué artículo. 
 

ViewAnimator in Android Sample GIF

Implementación paso a paso

Paso 1: Crear un nuevo proyecto 

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Kotlin como lenguaje de programación.

Paso 2: trabajar con el archivo activity_main.xml

Vaya al archivo activity_main.xml y consulte el siguiente código. A continuación se muestra el código para el  archivo activity_main.xml .

XML

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff"
    android:orientation="vertical">
  
    <ViewAnimator
        android:id="@+id/simpleViewAnimator1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </ViewAnimator>
      
    <Button
        android:id="@+id/btnNext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="100dp"
        android:background="#055"
        android:text="NEXT"
        android:textColor="#fff"
        android:textStyle="bold" />
  
</LinearLayout>

 
Paso 3: trabajar con el archivo MainActivity.kt

Vaya al archivo MainActivity.kt y consulte el siguiente código. A continuación se muestra el código del  archivo MainActivity.kt . Se agregan comentarios dentro del código para comprender el código con más detalle. 

Kotlin

import android.os.Bundle
import android.view.View
import android.view.animation.AnimationUtils
import android.widget.Button
import android.widget.ImageView
import android.widget.ViewAnimator
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
  
    private var simpleViewAnimator1: ViewAnimator? = null
    var buttonNext: Button? = null
  
    // array of images, here taking metal images
    var availableImages = intArrayOf(R.drawable.gold, R.drawable.silver, R.drawable.platinum,
            R.drawable.copper, R.drawable.aluminium)
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // get The references of Button and ViewAnimator
        buttonNext = findViewById<View>(R.id.btnNext) as Button
  
        // get the reference of ViewAnimator
        simpleViewAnimator1 = findViewById<View>(R.id.simpleViewAnimator1) as ViewAnimator
  
        for (i in availableImages.indices) {
            // create a new object  for ImageView by this way
            val imgView = ImageView(applicationContext)
  
            // Let us set image resource for ImageView
            imgView.setImageResource(availableImages[i])
  
            // Then add the child view in ViewAnimator
            simpleViewAnimator1!!.addView(imgView)
        }
  
        // Declare in and out animations and load them using AnimationUtils class
        val animationIn = AnimationUtils.loadAnimation(this, android.R.anim.slide_in_left)
        val animationOut = AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right)
  
        // set the animation type to ViewAnimator
        simpleViewAnimator1!!.inAnimation = animationIn
        simpleViewAnimator1!!.outAnimation = animationOut
  
        // set false value for setAnimateFirstView, but this is ultimately your choice
        simpleViewAnimator1!!.animateFirstView = false
  
        // Let us write ClickListener for NEXT button
        // The current view will go out and next view will come in with
        // specified animation
        buttonNext!!.setOnClickListener {
            // TODO Auto-generated method stub
            // show the next view of ViewAnimator `     `
            simpleViewAnimator1!!.showNext()
        }
    }
}

Producción

Adjunto un video corto para el pequeño código de demostración anterior. Aquí se dan 5 tipos diferentes de metales disponibles y en cada vista, podemos tener una vista tras otra. También puede divertirse al tener esta función en sus aplicaciones de Android.

Publicación traducida automáticamente

Artículo escrito por priyarajtt y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *