2011-09-27 25 views
34

我目前使用一种主要的解决方法,并且每次更改TextView上的文本时都会切换两个活动。我正在使用此代码:更改textview时的动画

Weeklytext.this.overridePendingTransition( 
        R.anim.slide_in_left, 
        R.anim.slide_out_right 
      ); 

是否可以在一个Activity中执行此操作?这是一种恼人的有两个具有完全相同的内容的活动,以便我可以使用动画;)

谢谢! 请问你是否不理解我的问题!

回答

66

在更改TextView中的文本时,您可以使用TextSwitcher来制作动画。

TextSwitcher只是一种特殊类型的ViewSwitcher,因此,它允许您提供两个视图,从中进行动画处理。当你调用setText()时,它会更新下一个TextView的文本,然后将这个文本动画到屏幕上,并将当前动画放到屏幕上。然后将旧的TextView指定为“下一个”TextView,并重复该过程。

您可以使用setFactory(...)来指定视图,或者只是简单地向其添加两个TextView,即addView(...)

// get a TextSwitcher view; instantiate in code or resolve from a layout/XML 
TextSwitcher textSwitcher = new TextSwitcher(context); 

// specify the in/out animations you wish to use 
textSwitcher.setInAnimation(context, R.anim.slide_in_left); 
textSwitcher.setOutAnimation(context, R.anim.slide_out_right); 

// provide two TextViews for the TextSwitcher to use 
// you can apply styles to these Views before adding 
textSwitcher.addView(new TextView(context)); 
textSwitcher.addView(new TextView(context)); 

// you are now ready to use the TextSwitcher 
// it will animate between calls to setText 
textSwitcher.setText("hello"); 
... 
textSwitcher.setText("goodbye"); 
+0

这听起来像我需要的!我只需要弄清楚如何使用它。 – Lorof

+1

@洛伦兹我加了一些代码来帮助你:) – antonyt

+0

很好的例子在这里:http://www.learn-android-easily.com/2013/06/android-textswitcher.html –