先看效果
横向滑动的TextView 比较简单 就是TextView中的跑马灯效果
可以这样写:
android:ellipsize = "marquee" 跑马灯 或者
tv.setEllipsize(TextUtils.TruncateAt.valueOf("MARQUEE"));
接下来就重点讲一下垂直翻滚的VerticalScrollTextView
在自定义 VerticalScrollTextView的时候我们继承了TextSwitcher
而TextSwitcher的父类是ViewSwitcher
ViewSwitcher的父类是ViewAnimator
核心功能实现是在ViewSwitcher里面实现的。简单分析一下ViewSwitcher
当然里面重点是 ViewFactory mFactory
/** * The factory used to create the two children. */;
他是一个供外部控制的接口,结合setFactory方法 ,产生两个view
public void setFactory(ViewFactory factory) {
mFactory = factory;
obtainView();
obtainView();
}
我们可以控制 viewFactory接口然后设置 返回textview的所有属性
因为 obtainView();是这样实现的
private View obtainView() {
View child = mFactory.makeView(); //由接口控制
LayoutParams lp = (LayoutParams) child.getLayoutParams();
if (lp == null) {
lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
}
addView(child, lp);
return child;
}
有了两个textview那么接下来就是它们之间切换的动画了
所以直接看源码吧 https://git.oschina.net/wujianxing/TextViewBanner.git