2011-09-27 26 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 –