Hackfive 使用TextSwitcher和ImageSwitcher实现平滑过渡

1. 应用场景:

  • 通过向左和向右的导航按钮浏览日期列表
  • 在日期选择空间中改变日期
  • 倒计时始终
  • 新闻刚要
2.用到的知识点是:
    TextSwitcher和ImageSwitcher
    TextSwitcher举例要获得这种让用户预约的过度效果,只需以下几个简单步骤: 
  • 通 过 findViewById() 方 法 获 取 TextSwitcher 对 象 的 引 用switcher,当然也可以直接在代码中构造该对象
  • 通过switcher.setFactory()方法指定TextSwitcher的View-Factory.
  • 通过switcher.setInAnimation()方法设置换入动画效果
  • 通过switcher.setOutAnimation()方法设置换出动画效果   
    TextSwitcher的工作原理是:首先通过ViewFactory创建两个用于在TextSwitcher中切换的视图,每当调用setText()方法时,TextSwitcher首先移除
当前视图并显示setOutAnimation()方法设置的动画,然后并将另一个视图切换进来,并显示setInAnimation()方法设置的动画。    
  
 1 public class MainActivity extends Activity {
 2     private static final String[] TEXTS = { "First", "Second", "Third" };
 3     private int mTextsPosition = 0;
 4     private TextSwitcher mTextSwitcher;
 5     @Override
 6     public void onCreate(Bundle savedInstanceState) {
 7         super.onCreate(savedInstanceState);
 8         setContentView(R.layout.main);
 9         mTextSwitcher = (TextSwitcher) findViewById(R.id.your_textview);
10         mTextSwitcher.setFactory(new ViewFactory() {
11             @Override
12             public View makeView() {
13                 System.out.println("makeView");
14                 TextView t = new TextView(MainActivity.this);
15                 t.setGravity(Gravity.CENTER);
16                 return t;
17             }
18         });
19         mTextSwitcher.setInAnimation(this, android.R.anim.fade_in);
20         mTextSwitcher.setOutAnimation(this, android.R.anim.fade_out);
21         onSwitchText(null);
22     }
23     public void onSwitchText(View v) {
24         mTextSwitcher.setText(TEXTS[mTextsPosition]);
25         setNextPosition();
26     }
27     private void setNextPosition() {
28         mTextsPosition = (mTextsPosition + 1) % TEXTS.length;
29     }
30 }  
posted @ 2014-10-28 16:55  perfect亮  阅读(395)  评论(0编辑  收藏  举报