文本切換器(TextSwitcher)的功能與用法,
TextSwitcher整合了ViewSwitcher, 因此它具有與ViewSwitcher相同的特性:可以在切換View組件時使用動畫效果。與ImageSwitcher相似的是,使用TextSwitcher也需要設定一個ViewFactory。與ImageSwitcher不同的是,TextSwitcher所需要的ViewFactory的makeView()方法必須返回一個TextView組件。
<TextSwitcher與TextView的功能有點類似,它們都可用於顯示常值內容,區別在於TextSwitcher的效果更炫,它可以指定文本切換時的動畫效果。>
不多說,直接上代碼了。介面布局檔案如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <!-- 定義一個TextSwitcher,並制定了文本切換時的動畫效果 --> <TextSwitcher android:id="@+id/textSwitcher" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAlignment="center" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:inAnimation="@android:anim/slide_in_left" android:outAnimation="@android:anim/slide_out_right" android:onClick="next" > </TextSwitcher></RelativeLayout>
上面的布局檔案中定義了一個TextSwitcher,並為該文本切換指定了文本切換時的動畫效果,接下來Activity只要為該TextSwitcher設定ViewFactory,該TextSwitcher即可正常工作。
如下是Activity代碼:
/** * TextSwitcher practice. * @author peter. * */public class MainActivity extends Activity { private TextSwitcher textSwitcher; // 要顯示的文本 String[] strs = new String[] { "one", "two", "three" }; private int curStr; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textSwitcher = (TextSwitcher) findViewById(R.id.textSwitcher); textSwitcher.setFactory(new ViewFactory() {@Overridepublic View makeView() {TextView tv = new TextView(MainActivity.this);tv.setTextSize(40);// 字型顏色品紅tv.setTextColor(Color.MAGENTA);return tv;}}); //調用next方法顯示下一個字串 next(null); }// 事件處理函數,控制顯示下一個字串public void next(View source) {textSwitcher.setText(strs[curStr++ % strs.length]);}}