TextViewBanner

先看效果

TextViewBanner_第1张图片
android 4.gif

横向滑动的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

你可能感兴趣的:(TextViewBanner)