¿Cómo agregar ViewFlipper en Android?

Este artículo trata sobre la implementación de ViewFipper en Android. Es una extensión de la clase ViewAnimator que ayuda a animar entre las vistas que se le agregan. ViewFlipper facilita el cambio de vista. Para controlar el cambio entre vistas, ViewFlipper proporciona dos métodos startFlipping() y stopFlipping() . Para cambiar automáticamente entre vistas, agregue la etiqueta autoStart y establezca su valor en verdadero. Para dar más control al usuario, agregue vistas dinámicamente en ViewFlipper. Se puede usar un ViewFlipper en la aplicación de la galería para navegar entre las imágenes o videos.

Acercarse:

  1. Cree un nuevo directorio de recursos de Android . Haga clic derecho en la carpeta res y seleccione Directorio de recursos de Android. Asegúrese de seleccionar el tipo de recurso como anim .
  2. Ahora cree un nuevo archivo slide_left.xml en el directorio anim y agregue el siguiente código. Esta es la animación que se usará para cambiar de vista.

    slide_left.xml

          
    <?xml version="1.0" encoding="utf-8"?>
        <translate
            android:duration="@android:integer/config_mediumAnimTime"
            android:fromXDelta="0"
            android:toXDelta="-50%p" />
        <alpha
            android:duration="@android:integer/config_mediumAnimTime"
            android:fromAlpha="1.0"
            android:toAlpha="0.0" />
    </set>     
  3. Ahora cree un nuevo archivo slide_right.xml en el directorio anim y agregue el siguiente código. Esta es la animación que se usará para cambiar de vista.

    diapositiva_derecha.xml

          
    <?xml version="1.0" encoding="utf-8"?>
        <translate
            android:duration="@android:integer/config_mediumAnimTime"
            android:fromXDelta="50%p"
            android:toXDelta="0" />
        <alpha
            android:duration="@android:integer/config_mediumAnimTime"
            android:fromAlpha="0.0"
            android:toAlpha="1.0" />
    </set>
  4. Agregue el siguiente código en el archivo activity_main.xml . En este archivo, ViewFlipper se agrega al diseño. Todos los widgets que se agregan en el flipper de vista actuarán como vistas diferentes. También se agregan dos botones siguiente y anterior .

    actividad_principal.xml

          
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout 
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="MainActivity">
      
        <ViewFlipper
      
            android:id="@+id/view_flipper"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:inAnimation="@android:anim/slide_in_left"
            android:outAnimation="@android:anim/slide_out_right">
      
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:src="@drawable/gfg" />
      
            <TextView
                android:layout_gravity="center"
                android:textStyle="bold"
                android:textColor="#219806"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="GeeksForGeeks"
                android:textSize="20sp"
            />
      
            <Button
                android:textColor="#219806"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="Open Website" />
        </ViewFlipper>
      
        <Button
            android:id="@+id/prev_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentStart="true"
            android:layout_margin="16dp"
            android:text="Previous" />
      
        <Button
            android:id="@+id/next_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentEnd="true"
            android:layout_margin="16dp"
            android:text="Next" />
      
    </RelativeLayout>
  5. Ahora agregue el siguiente código en el archivo MainActivity.java . Los botones Anterior y Siguiente nos ayudarán a cambiar entre las vistas. En el botón anterior , para la animación se usa slide_right y para la animación de salida se usa slide_left y viceversa para el botón siguiente .

    MainActivity.java

    package org.geeksforgeeks.gfgviewflipper;
      
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ViewFlipper;
    import androidx.appcompat.app.AppCompatActivity;
      
    public class MainActivity extends AppCompatActivity {
        ViewFlipper flipper;
        Button prev_Button, next_Button;
      
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
      
            flipper = findViewById(R.id.view_flipper);
            prev_Button = findViewById(R.id.prev_button);
            next_Button = findViewById(R.id.next_button);
      
            prev_Button.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v)
                    {
                        // It is used to set the in and out
                        // animation of View flipper.
                        flipper.setInAnimation(MainActivity.this,
                                               R.anim.slide_right);
                        flipper.setOutAnimation(MainActivity.this,
                                                R.anim.slide_left);
      
                        // It shows previous item.
                        flipper.showPrevious();
                    }
                });
      
            next_Button.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v)
                    {
                        // It is used to set the in and out
                        // animation of View flipper.
                        flipper.setInAnimation(MainActivity.this,
                                               android.R.anim.slide_left);
                        flipper.setOutAnimation(MainActivity.this,
                                                android.R.anim.slide_right);
      
                        // It shows next item.
                        flipper.showNext();
                    }
                });
        }
    }

Producción:

Agregue la etiqueta de inicio automático en ViewFlipper y establezca su valor en verdadero. Entonces funcionará así.

Publicación traducida automáticamente

Artículo escrito por madhavmaheshwarimm20 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 *