Open In App

How to add TextSwitcher with animation in Android using Java

A TextSwitcher is used to animate a text on a screen. It is the child class of the ViewSwitcher class. It contains only one child of type TextView. In order to set animation on TextSwitcher we have to add animation tag or we can add programmatically. Here are the some usage of TextSwitcher:

  1. Add the following code in the activity_main.xml file.





    <?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. Now add the following code in the MainActivity.java file.




    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]);
        }
    }
    
    

Output:


Article Tags :