先看效果
android 4.gif
橫向滑動(dòng)的TextView 比較簡單 就是TextView中的跑馬燈效果
可以這樣寫:
android:ellipsize = "marquee" 跑馬燈 或者
tv.setEllipsize(TextUtils.TruncateAt.valueOf("MARQUEE"));
接下來就重點(diǎn)講一下垂直翻滾的VerticalScrollTextView
在自定義 VerticalScrollTextView的時(shí)候我們繼承了TextSwitcher
而TextSwitcher的父類是ViewSwitcher
ViewSwitcher的父類是ViewAnimator
核心功能實(shí)現(xiàn)是在ViewSwitcher里面實(shí)現(xiàn)的憨募。簡單分析一下ViewSwitcher
當(dāng)然里面重點(diǎn)是 ViewFactory mFactory
/** * The factory used to create the two children. */;
他是一個(gè)供外部控制的接口匪凡,結(jié)合setFactory方法 ,產(chǎn)生兩個(gè)view
public void setFactory(ViewFactory factory) {
mFactory = factory;
obtainView();
obtainView();
}
我們可以控制 viewFactory接口然后設(shè)置 返回textview的所有屬性
因?yàn)? obtainView();是這樣實(shí)現(xiàn)的
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;
}
有了兩個(gè)textview那么接下來就是它們之間切換的動(dòng)畫了
所以直接看源碼吧 https://git.oschina.net/wujianxing/TextViewBanner.git