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 }  
时间: 2024-10-26 04:16:35

Hackfive 使用TextSwitcher和ImageSwitcher实现平滑过渡的相关文章

css3和js实现鼠标滑过图片微移动 平滑过渡

<!doctype html> <html> <head> <meta charset="utf-8"> <title>index</title> <script src="jquery-1.11.1.min.js"></script> <body> <div class="item"> <a href="&qu

CSS3平滑过渡transition

<!DOCTYPE html><head><meta charset="utf-8" /><title>CSS3平滑过渡transition</title><meta name="description" content="" /><meta name="keywords" content="" /><script s

如何实现不同斜率边坡的平滑过渡

在OpenRail中可以在横断面模板中设置随高度的变化采用不同的坡比,但在坡比变化处很衔接生硬,有时候甚至不能生成完整的边坡.针对此问题对边坡进行了优化,能够实现平滑过渡,坡脚线也较为顺畅. 为了简化,本文以填方为例,边坡大于2m时坡比由1:1.5过渡到1:1. 2_R设置如下 1_R设置如下 坡脚的过渡如下所示 3_R的定位是难点,直接通过约束无法实现,需要借助辅助点4_R,4_R设置如下 3_R设置如下 平面效果如下 三维效果如下 图片详见有道笔记 http://note.youdao.co

Unity中的平滑过渡方法了解

只是刚入门,通过代码以及文档比较一下异同点,以后遇到问题方便选择. Mathf.Lerp // UnityEngine.Mathf /// <summary> /// <para>Linearly interpolates between a and b by t.</para> /// </summary> /// <param name="a">The start value.</param> /// <

锚点平滑过渡 js

$(function(){ $('a[href*=#]').click(function() {        if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {            var $target = $(this.hash);            $target = $target.lengt

50 Android Hack 读书笔记

1.可以指定android:weightSum属性 2.使用 标签来应对变化 3.使用 标签延迟加载有可能不需要加载的数据 标签中可以指定inflateId属性 4.使用自定义ViewGroup,重写onMeasure.onLayout 5.使用Android的PreferenceCategory 6.使用TextSwitcher.ImageSwitcher来制作过渡动画 7.使用LayoutAnimathionController,使用View#setLayoutAnimation 8.使用C

android的ImageSwitcher和TextSwitcher

ImageSwitcher: activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_heig

css3变形 过渡 动画

CSS3 变形/变换 相关属性 transform 设置或检索对象的检索(none 2D 3D) transform-origin:设置或检索对象以某个原点进行检索 transform-style: flat(默认)指定子元素位于次元素所在平面内/preserve-3d 指定子元素定位在三维空间内 perspective: 长度单位 指定观察者距离平面的距离 perspective-origin 指定观察者的位置 left/right/center backface-visibialbe: vi

CSS2D旋转、过渡、动画

2D转换: 位移: -webkit-transform:translate(   ); 缩放: -webkit-transform:scale(.像素,.像素); 旋转: -webkit-transform:rotate(45deg); -webkit-transform-origin:x px,y px; 斜切: -webkit-transform:skew(xrad,yrad); 过渡 -webkit-transition:width(针对过渡属性)   4s(过渡周期及时间) ease(过