Todas las aplicaciones de Android tendrán una función para cambiar diferentes vistas para explicar/promocionar su sitio o producto. La representación visual de un producto mostrando diferentes vistas impresionará fácilmente a los clientes. En este artículo, veamos cómo llevar el «ViewSwitcher» a Android. ViewSwitcher es una subclase de ViewAnimator y se usa para cambiar entre vistas que brindan diferentes vistas a los clientes. Es un elemento del widget de transición que nos ayuda a agregar transiciones en las vistas. Podemos usar eso para animar una vista en la pantalla. ViewSwitcher también cambia sin problemas e incluso entre dos vistas diferentes (es decir , TextView , ImageView, o cualquier diseño) y debido a esta característica, uno puede impresionar a los clientes mostrando TextView, Imageview alternativamente donde sea necesario. En nuestro ejemplo, veamos con ImageView en sí.
Nota importante: ViewSwitcher solo puede tener dos vistas secundarias y solo se muestra una a la vez. Si tiene más de dos vistas secundarias en ViewSwitcher, aparecerá el error java.lang.IllegalStateException de «No se pueden agregar más de 2 vistas a un ViewSwitcher».
Inicialización de ViewSwitcher
Java
// We can initialize ViewSwitcher in the below way , where // simpleViewSwitcher1 // is the id of ViewSwitcher in xml file. Usually xml file // name will be // activity_main but we can have meaningful name. // let our xml file name be activity_viewswitcher ViewSwitcher simpleViewSwitcher1 = (ViewSwitcher)findViewById(R.id.simpleViewSwitcher1);
Veamos los métodos importantes de ViewSwitcher, su funcionalidad y su implementación de código.
Métodos importantes
Métodos generales y su descripción:
Métodos generales |
Descripción |
---|---|
obtenerVistaSiguiente() |
Para volver a la siguiente vista que se mostrará en ViewSwitcher, se utiliza el método getNextView() y devuelve el ID de vista del siguiente vista que se mostrará. |
Reiniciar() |
Puede haber un requisito para restablecer ViewSwitcher en un evento de clic y, por lo tanto, se comporta como si la primera animación aún no se hubiera reproducido. El método reset() se usa para eso. |
mostrarSiguiente() |
ViewSwitcher solo puede tener 2 vistas. Solo se muestra una vista a la vez. Para mostrar la siguiente vista, el método requerido es showNext() |
mostrarAnterior() |
ViewSwitcher solo puede tener 2 vistas. Solo se muestra una vista a la vez. Para mostrar la vista anterior, el método requerido es showPrevious() |
Métodos relacionados con la animación:
Métodos relacionados con la animación |
Descripción |
---|---|
loadAnimation(contexto contexto, int id) |
Este método se utiliza siempre que necesitamos definir un objeto de Clase de animación a través de la clase AnimationUtilities llamando a un método estático loadAnimation. |
setInAnimation(loadIn) | Para configurar la animación de la aparición del objeto en la pantalla |
setOutAnimation(fuera) |
Cuando mostramos la siguiente vista, la primera vista debe eliminarse y eso se hace usando setOutAnimation() |
setFactory(Fábrica de ViewFactory) |
Se utiliza para crear una nueva vista para ViewSwitcher. el viejo es reemplaza y se crea una nueva vista utilizando este método. |
Atributos de ViewSwitcher
Al ver los atributos junto con los métodos que ayudarán en el proyecto.
Atributos |
Descripción |
---|---|
identificación | Para identificar de forma única un ViewSwitcher. |
relleno
|
Este atributo se usa para establecer el relleno desde la izquierda, la derecha, la parte superior o inferior de un ViewSwitcher
|
antecedentes |
Configure el fondo de un ViewSwitcher con este método. Para hacer un llamamiento agradable, se debe establecer el fondo. |
Podemos establecer un color o un dibujable en el fondo de un fondo:
XML
<ViewSwitcher android:id="@+id/simpleViewSwitcher1" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="20dp" android:background="#0F9D58"> <!-- set 20 dp padding from all the sides of ViewSwitcher set GFG specified color in the background of ViewSwitcher --> <!-- Rest of view are here -- > </ViewSwitcher>
Podemos configurar el fondo a través de la clase ViewSwitcher Java:
Java
// set any color that you want simpleViewSwitcher1.setBackgroundColor(Color.<Your favorite color>);
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 Java 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:orientation="vertical"> <!-- ViewSwitcher with two views one is ImageView and other is LinearLayout in which we have a ImageView and a TextView --> <ViewSwitcher android:id="@+id/simpleViewSwitcher" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#0F9D58" android:padding="20dp"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:src="@drawable/bir" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="vertical"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:src="@drawable/bird" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="vertical"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:src="@drawable/bird" /> </LinearLayout> </ViewSwitcher> <Button android:id="@+id/buttonNext" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="10dp" android:background="#005" android:text="NEXT" android:textColor="#fff" android:textStyle="bold" /> <Button android:id="@+id/buttonPrevious" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="10dp" android:background="#005" android:text="PREVIOUS" android:textColor="#fff" android:textStyle="bold" /> </LinearLayout>
Paso 3: trabajar con el archivo MainActivity.java
Vaya al archivo MainActivity.java y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.java . Se agregan comentarios dentro del código para comprender el código con más detalle.
Java
import android.os.Bundle; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.ViewSwitcher; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private ViewSwitcher simpleViewSwitcher; Button btnNext, btnPrev; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // get The references of Button and ViewSwitcher btnNext = (Button) findViewById(R.id.buttonNext); btnPrev = (Button) findViewById(R.id.buttonPrevious); // get the reference of ViewSwitcher simpleViewSwitcher = (ViewSwitcher) findViewById(R.id.simpleViewSwitcher); // Declare in and out animations and load them using AnimationUtils class Animation in = AnimationUtils.loadAnimation(this, android.R.anim.slide_in_left); Animation out = AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right); // set the animation type to ViewSwitcher simpleViewSwitcher.setInAnimation(in); simpleViewSwitcher.setOutAnimation(out); // ClickListener for NEXT button // When clicked on Button ViewSwitcher will switch between views // The current view will go out and next view will come in with specified animation btnNext.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // show the next view of ViewSwitcher simpleViewSwitcher.showNext(); } }); btnPrev.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // show the previous view of ViewSwitcher simpleViewSwitcher.showPrevious(); } }); } }
Producción
Al ejecutar el código de Android en el estudio de Android, podemos obtener el resultado como se muestra en el video adjunto. Esta es una función útil que se utiliza en muchas 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