为了账号安全,请及时绑定邮箱和手机立即绑定

【Android开发】TextSwitcher文本转换器

标签:
Android

引语:存好心,说好话,行好事,结好缘,做好人,人有善念,天必佑之。

TextSwitcher继承ViewSwitcher,是用来实现文本转换的控件,一般用来转换TextView的文本。平时在开发过程中,改变TextView文本,只需要使用TextView.setText("文本")即可,那么TextSwitcher转换TextView有哪些特殊的地方尼?

首先,说说TextSwitcher的这个转换到底指什么?

这里的转换并不只是对同一个TextView进行文本转换,还可以对不同TextView进行文本转换。

拿生活中的例子来说,你平时在支付宝上发布上门寄快件信息,支付宝上快递公司可能派快递员过来取快件,然后寄出去。当你再次在支付宝上发布上门寄快件信息,支付宝上快递公司同样会派快递员过来取快件,然后寄出去。这里的快递员就相当于TextView,可能是同一个快递员,也可以是不同的快递员。快件信息就相当于文本。而支付宝平台就相当于TextSwitcher,用来处理信息转换。

其次,说说TextSwitcher文本转换特点。

TextSwitcher最大的特点就是在处理文本转换的时候,设置转换过程动画。对于多个TextView只需要一次设置即可。

//设置转换动画,这里引用系统自带动画

Animation in = AnimationUtils.loadAnimation(this,android.R.anim.fade_in);

Animation out = AnimationUtils.loadAnimation(this,android.R.anim.fade_out);

textSwitcher.setInAnimation(in);

textSwitcher.setOutAnimation(out);

与TextSwitcher最为密切的是ViewFactory,它是用来给TextSwitcher提供视图的工厂,ViewFactory通过makeView方法制造View视图。

//提供TextSwitcher切换View

@Override

publicViewmakeView() {

TextView textView =newTextView(this);

textView.setTextSize(24);

returntextView;

}

最后,实例分析。

TextSwitcher使用起来很简单,只需两个关键步骤:定义TextSwitcher实体、设置ViewFactory。

TextSwitcher的使用有两种方式,一种是直接在XML布局文件中添加,之后在Java文件中进行相关属性设置。二种是自定义TextSwitcher。

1、XML布局文件添加

<TextSwitcher

android:id="@+id/textswitcher"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/app_name"/>

这时候要在Java代码中设置ViewFactory,这里可以通过继承ViewSwitcher.ViewFactory接口,实现ViewFactory。

//自定义文本转换器

textSwitcher= (TextSwitcher) findViewById(R.id.textswitcher);

//指定TextSwitcher的ViewFactory(视图工厂),ViewFactory会给TextSwitcher提供View

textSwitcher.setFactory(this);

2、自定义TextSwitcher

public classZTextSwitcherextendsTextSwitcherimplementsTextSwitcher.ViewFactory {
privateContextmContext;
publicZTextSwitcher(Context context) {
this(context, null);
}
publicZTextSwitcher(Context context,AttributeSet attrs) {
super(context,attrs);
this.mContext= context;
init();
}
private voidinit() {
//设置转换动画,这里引用系统自带动画
Animation in = AnimationUtils.loadAnimation(mContext,android.R.anim.fade_in);
Animation out = AnimationUtils.loadAnimation(mContext,android.R.anim.fade_out);
this.setInAnimation(in);
this.setOutAnimation(out);
//设置ViewSwitcher.ViewFactory
this.setFactory(this);
}
@Override
publicViewmakeView() {
TextView textView =newTextView(mContext);
textView.setTextSize(24);
returntextView;
}
}

最后在XML布局文件中引入即可:

<cc.ibooker.ztextswitcher.ZTextSwitcher
android:id="@+id/ztextswitcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"/>

原文链接:http://www.apkbus.com/blog-613740-68246.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消