Cómo agregar TextSwitcher con animación en Android usando Java

Se utiliza un TextSwitcher para animar un texto en una pantalla. Es la clase secundaria de la clase ViewSwitcher . Contiene solo un hijo de tipo TextView. Para configurar la animación en TextSwitcher, debemos agregar una etiqueta de animación o podemos agregarla mediante programación. Aquí están algunos usos de TextSwitcher:

  • Cambio de números en un Selector de fecha
    • Cuenta regresiva del reloj temporizador
    • TextSwitcher utiliza dos tipos de animaciones:

      • en animación
      • Animación fuera

      Acercarse:

  1. Agregue el siguiente código en el archivo activity_main.xml .

    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">
      
        <TextSwitcher
            android:id="@+id/textSwitcher"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="80dp"
            android:inAnimation="@android:anim/slide_in_left"
            android:outAnimation="@android:anim/slide_out_right" />
      
        <Button
            android:id="@+id/button"
            android:textSize="20sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:text="Next" />
      
    </RelativeLayout>
  2. Ahora agregue el siguiente código en el archivo MainActivity.java .

    MainActivity.java

    package com.madhav.maheshwari.gfgTextSwitcher;
      
    import android.graphics.Color;
    import android.os.Bundle;
    import android.view.Gravity;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextSwitcher;
    import android.widget.TextView;
    import android.widget.ViewSwitcher;
      
    import androidx.appcompat.app.AppCompatActivity;
      
    public class MainActivity extends AppCompatActivity {
        private TextSwitcher textSwitcher;
        private Button nextButton;
        private int index = 0;
        private String[] arr
            = { "GeeksForGeeks", "A",
                "Computer", "Science",
                "Portal", "For",
                "Geeks" };
        private TextView textView;
      
        @Override
        protected void onCreate(
            Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
      
            textSwitcher = findViewById(R.id.textSwitcher);
            nextButton = findViewById(R.id.button);
            nextButton.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v)
                    {
      
                        // when the text switcher
                        // reaches at the end
                        // of our array. It will
                        // be reset to 0.
                        if (index == arr.length - 1) {
                            index = 0;
                            textSwitcher.setText(arr[index]);
                        }
                        else {
                            textSwitcher.setText(arr[++index]);
                        }
                    }
                });
      
            // Here we have to create
            // a TextView for our TextSwitcher
            textSwitcher.setFactory(
                new ViewSwitcher.ViewFactory() {
                    @Override
                    public View makeView()
                    {
                        textView
                            = new TextView(
                                MainActivity.this);
                        textView.setTextColor(
                            Color.parseColor("#219806"));
      
                        textView.setTextSize(40);
                        textView.setGravity(
                            Gravity.CENTER_HORIZONTAL);
                        return textView;
                    }
                });
      
            // This is used to set the text
            // when app starts which is
            // at index i.e 0.
            textSwitcher.setText(arr[index]);
        }
    }

Producción:

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 *