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