1.在activity中需要代码声明
textSwitcher = (TextSwitcher)findViewById(R.id.text_switcher);
textSwitcher.setFactory(new ViewFactory() {
@Override
public View makeView() {
TextView tv = new TextView(MainActivity.this);
tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16.0F);
tv.setTextColor(Color.RED);
return tv;
}
});
textSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.anim_in));
textSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.anim_out));
2.两个anim动画xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:shareInterpolator="false" android:zAdjustment="top">
<translate
android:duration="3000"
android:fromYDelta="100%p"
android:toYDelta="0" />
</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:shareInterpolator="false" android:zAdjustment="top">
<translate
android:duration="3000"
android:fromYDelta="0"
android:toYDelta="-100%p" />
</set>
<style name="pop_anim">
<item name="android:windowEnterAnimation">@anim/anim_in</item>
<item name="android:windowExitAnimation">@anim/anim_out</item>
</style>
3.用线程或者定时器实现循环翻动。
Thread t = new Thread(new Runnable() {
@Override
public void run() {
while (!flag) {
Message msg = new Message();
msg.what = 1;
msg.obj = getItem[i];
handler.sendMessage(msg);
if (i== 2) {
i = 0;
}
try {
t.sleep(3000);
i++;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
4.hanlder更新ui
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
textSwitcher.setText((String)msg.obj);
super.handleMessage(msg);
};
};