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.
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