Smooth text change in android animation

前端 未结 7 2021
刺人心
刺人心 2020-12-11 00:29

I want to add animation in android text view so that when a text changes it should change smoothly and slowly. Like, fade in or fade out when the text changes. Is it possibl

相关标签:
7条回答
  • 2020-12-11 00:51

    Use this in onCreate() , before change text in your textview:

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            LinearLayout parentLayout = (LinearLayout)view.findViewById(R.id.container);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                LayoutTransition layoutTransition = new LayoutTransition();
                layoutTransition.enableTransitionType(LayoutTransition.CHANGING);
                parentLayout.setLayoutTransition(layoutTransition);
            }    
            ......    
        }
    
    0 讨论(0)
  • 2020-12-11 01:03

    use TextSwitcher

    <TextSwitcher
      android:layout_marginTop="50dp"
      android:id="@+id/textSwitcher"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_gravity="center_horizontal"/>
        <TextView 
           android:layout_width="match_parent"
           android:layout_height="wrap_content" />
        <TextView 
           android:layout_width="match_parent"
           android:layout_height="wrap_content" />
    <TextSwitcher/>
    

    Array of Strings to show in TextSwitcher

    String textToShow[] = {"Main HeadLine", "Your Message", "New In Technology"};
    

    You have to set animation

    mSwitcher.setInAnimation(context, android.R.anim.slide_in_left);
    mSwitcher.setOutAnimation(context, android.R.anim.slide_out_right);
    

    Animation is triggered by calling method setText(CharSequence text)

    // When clicked on Button TextSwitcher will switch between texts
    btnNext.setOnClickListener(new View.OnClickListener() {
        public void onClick (View v) {
    
           currentIndex++;
           // If index reaches maximum reset it
           if (currentIndex == messageCount) {
              currentIndex = 0;
           }
    
           mSwitcher.setText(textToShow[currentIndex]);
    }):
    

    If you want to set text without animation, call method setCurrentText(CharSequence text).

    0 讨论(0)
  • 2020-12-11 01:04

    The easiest way to do this is:

    btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                            ViewGroup parent=(ViewGroup) tv.getParent();                 //get parent of the TextView
                            parent.getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING);            //enable animations
                            tv.setText(String.valueOf(Integer.valueOf((String) tv.getText()) + 1));                   //change the text
            }
        });
    

    Now, your text should change slowly and nicely

    0 讨论(0)
  • 2020-12-11 01:06

    add android:animateLayoutChanges=true to root view , then in code behind

      call this line of code at onCreate
    
    
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        ((ViewGroup) findViewById(R.id.llRoot)).getLayoutTransition()
          .enableTransitionType(LayoutTransition.CHANGING);
       }
    
    0 讨论(0)
  • 2020-12-11 01:09

    You can use TranslateAnimation

    An animation that controls the position of an object.

        btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                 TranslateAnimation animObj= new TranslateAnimation(0,tv.getWidth(), 0, 0);
                 animObj.setDuration(2000);
                 tv.startAnimation(animObj);
                 tv.setText(String.valueOf(Integer.valueOf((String) tv.getText()) + 1));
                }
            });
    

    You can check below links for demo case

    1. Android Animation Example
    2. Android Working with XML Animations
    0 讨论(0)
  • 2020-12-11 01:14

    If you want to support Android 4+. check out the Transitions Everywhere lib. You can achieve all sorts of different animations with backward compatibility.

    Here you can find some examples.

    Just a few lines and you are good to go!

    TransitionManager.beginDelayedTransition(transitionsContainer,
            new ChangeText().setChangeBehavior(ChangeText.CHANGE_BEHAVIOR_OUT_IN));
    

    Now all you have to do is change the text and all the magic is done for you.

    0 讨论(0)
提交回复
热议问题