[Android] TextSwitcher -- 做什么的

TextSwitcherJava Doc是这样描述自己的:

Specialized ViewSwitcher that contains only children of type TextView. A TextSwitcher is useful to animate a label on screen. Whenever setText(CharSequence) is called, TextSwitcher animates the current text out and animates the new text in.

由此可知,TextSwitcher:
- 有个TextView子视图
- 在文本更新时,能够让旧文本淡出,新文本淡入,从而呈现平滑切换的动画效果

如何使用TextSwitcher

第1步:在layout中添加TextSwitcher控件
    <TextSwitcher
        android:id="@+id/ts"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_marginTop="20dp"
        android:layout_weight="1" >
    </TextSwitcher>
第2步:为TextSwitcher控件设置工厂(用于生产视图)
        mTs.setFactory(new TextSwitcher.ViewFactory() {
            @Override
            public View makeView() {
                final TextView tv = (TextView) LayoutInflater.from(
                        getApplicationContext()).inflate(R.layout.text, null);
                return tv;
            }
        });
第3步:设置淡入淡出动画
        mTs.setInAnimation(AnimationUtils.loadAnimation(
                getApplicationContext(), android.R.anim.fade_in));
        mTs.setOutAnimation(AnimationUtils.loadAnimation(
                getApplicationContext(), android.R.anim.fade_out));

之后,执行mTs.setText(txt)来切换文本时就会产生如下效果:
技术分享

注:完整代码在 GitHub

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。