package com.gc.textswitcherdemo; /* * 文本切换器(TextSwitcher): * 1、TextSwitcher继承了ViewSwitcher,因此它具有与ViewSwitcher相同的特征 * 可以在切换View组件时使用动画效果。与ImageSwitcher相似的是,使用TextSwitcher * 也需要设置一个ViewFactory。与ImageSwitcher不同的是,TextSwitcher所需的 * ViewFactory的makeView()方法必须返回一个TextView组件。 * 2、TextSwitcher与TextView的功能有点相似,它们都可用于显示文本内容,区别在于 * TextSwitcher的效果更炫,它可以指定文本切换时的动画效果 * */ import android.os.Bundle; import android.app.Activity; import android.graphics.Color; import android.view.Menu; import android.view.View; import android.widget.TextSwitcher; import android.widget.TextView; import android.widget.ViewSwitcher.ViewFactory; /** * * @author Android将军 * */ public class MainActivity extends Activity { private TextSwitcher textSwitcher; private String[] strs=new String[] { "Android将军", "ios将军", "Cocos2d-X将军", "将军" }; 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() { @Override public 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]); } }
布局文件如下:
<LinearLayout 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" android:orientation="vertical" > <!-- 定义一个TextSwitcher,并指定了文本切换时的动画效果 --> <TextSwitcher android:id="@+id/textSwitcher" android:layout_width="match_parent" android:layout_height="wrap_content" android:inAnimation="@android:anim/slide_in_left" android:outAnimation="@android:anim/slide_out_right" android:onClick="next" /> </LinearLayout>效果截图:
AndroidUI组件之TextSwitcher,布布扣,bubuko.com
原文地址:http://blog.csdn.net/android_jiangjun/article/details/25604177