zoukankan      html  css  js  c++  java
  • 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 }  
  • 相关阅读:
    hibernate关联关系(多对多)
    hibernate关联关系(一对多)
    hibernate主键生成策略
    hibernate01
    利用Struts2拦截器完成文件上传功能
    layui的CRUD案列
    Struts2的CRUD
    Git中.gitignore文件不起作用
    在 Visual Studio 中使用 Q# 进行量子编程
    Elasticsearch 搜索
  • 原文地址:https://www.cnblogs.com/liangstudyhome/p/4057272.html
Copyright © 2011-2022 走看看