在layout布局文件中声明TextSwitcher
<!--inAnimation 进来的动画-->
<!--outAnimation 出去的动画-->
<TextSwitcher
android:id="@+id/follow_textSwitcher_up"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inAnimation="@anim/push_up_in"
android:outAnimation="@anim/push_up_out">
</TextSwitcher>
位移的动画
inAnimation的动画,outAnimation的动画修改fromYDelta的值即可
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false"
android:zAdjustment="top">
<translate
android:duration="400"
android:fromYDelta="100%"
android:interpolator="@android:anim/accelerate_interpolator"
android:toYDelta="0"
/>
<alpha
android:duration="400"
android:fromAlpha="0.0"
android:toAlpha="1.0"/>
</set>
添加TextSwitcher的主体内容
TextSwitcher.setFactory(new ViewSwitcher.ViewFactory() {
//这里 用来创建内部的视图,这里创建TextView,用来显示文字
@Override
public View makeView() {
final TextView tv = new TextView(getContext());
//设置文字大小
tv.setTextSize(UIUtils.dip2px(15));
//设置文字 颜色
tv.setTextColor(Color.BLACK);
tv.setSingleLine();
tv.setEllipsize(TextUtils.TruncateAt.END);
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
lp.gravity = Gravity.CENTER;
tv.setLayoutParams(lp);
//内容的点击事件
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ToastUtils.showToast(tv.getText().toString());
}
});
return tv;
}
});
主体内容的点击事件处理
//内容的点击事件
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ToastUtils.showToast(tv.getText().toString());
}
});
TextSwitcher的方法
//切换到下一内容
TextSwitcher.setText(items.get(msg.what));
//设置立刻生效当前的内容,并没有动画展示.
TextSwitcher.setCurrentText(items.get(msg.what));