Android----ViewFlipper,ViewSwitcher(ImageSwitcher,TextSwitcher)

ViewFlipper继承于ViewAnimator,android.widget.ViewAnimator类继承至FrameLayout,ViewAnimator类的作用是为FrameLayout里面的View切换提供动画效果。

该类有如下几个和动画相关的函数:
setInAnimation:设置 View进入屏幕时候使用的动画,该函数有两个版本,一个接受单个参数,类型为android.view.animation.Animation;一个接受两个参数,类型为Context和int,分别为 Context对象和定义Animation的resourceID。
  • setOutAnimation: 设置View退出屏幕时候使用的动画,参数setInAnimation函数一样。
  • showNext:调用该函数来显示FrameLayout里面的下一个View。
  • showPrevious:调用该函数来显示FrameLayout里面的上一个View。
一般不直接使用 ViewAnimator而是使用它的两个子类ViewFlipper和ViewSwitcher
ViewFlipper可以用来指定FrameLayout内多个View之间的切换效果,可以一次指定也可以每次切换的时候都指定单独的效果。该类额外提供了如下几个函数: 

android:autoStart
当设为true时,自动启动动画。此时必须是一个布尔值,属性值为true或false
(对应于全局资源属性R.attr.autoStart)
android:flipInterval
显示下一个视图的时间间隔


isAutoStart 如果视图显示到窗口上时会自动调用startFlipping()方法,则返回true
isFlipping:用来判断View切换是否正在进行
setAutoStart 设置视图显示到窗口上时是否会自动调用startFlipping()方法
setFilpInterval:设置View之间切换的时间间隔
startFlipping:使用上面设置的时间间隔来开始切换所有的View,切换会循环进行
stopFlipping: 停止View切换

记住,ViewFlipper是继承至FrameLayout的,所以它是一个Layout里面可以放置多个View。

  1. //在layout中定义的属性,也可以在代码中指定   
  2. //             mViewFlipper.setInAnimation(getApplicationContext(), R.anim.push_left_in);   
  3. //             mViewFlipper.setOutAnimation(getApplicationContext(), R.anim.push_left_out);   
  4. //             mViewFlipper.setPersistentDrawingCache(ViewGroup.PERSISTENT_ALL_CACHES); //指定缓存策略  
  5. //             mViewFlipper.setFlipInterval(1000); 
  6.                mViewFlipper.showPrevious(); //显示前一个视图 
  7.                mViewFlipper.showNext();//显示下一个视图
  8. //调用下面的函数将会循环显示mViewFlipper内的所有View。
  9. //             mViewFlipper.startFlipping(); //启动循环切换  
------------------------------------------------------------
ViewSwitcher 顾名思义Switche r特指在两个View之间切换,可以通过该类指定一个ViewSwitcher.ViewFactory 工程类来创建这两个View。该类也具有两个子类ImageSwitcher、TextSwitcher分别用于图片和文本切换。
注意:一个 ViewSwitcher 只允许包含两个子视图,且一次仅能显示一个。
(译者注:与
ViewFlipper 类相似,但该类不常用,常用其两个子类 ImageSwitcher :转换图片时增加动画效果; TextSwitcher   转换文字时增加动画效果
public void setFactory (ViewSwitcher.ViewFactory factory) ——设置用来生成将在视图转换器中切换的两个视图的工厂。

文字转换器控件(改变文字时增加一些动画效果)

    被用来使屏幕上的label产生动画效果。每当setText(CharSequence)被调用时,TextSwitcher使用动画方式将当前的文字内容消失并显示新的文字内容
// 指定转换器的 ViewSwitcher.ViewFactory
        mSwitcher.setFactory(this);
         // 设置淡入和淡出的动画效果
        Animation in = AnimationUtils.loadAnimation(this,
                android.R.anim.fade_in);
        Animation out = AnimationUtils.loadAnimation(this,
                android.R.anim.fade_out);
        mSwitcher.setInAnimation(in);
        mSwitcher.setOutAnimation(out);

ImageSwitcher图片切换器

ImageSwitcher是Android中控制图片展示效果的一个控件,每当调用以下方法:

    setImageURI(Uri uri):设置图片地址

    setImageResource(int resid):设置图片资源库

    setImageDrawable(Drawable drawable):绘制图片

ImageSwitcher使用动画方式实现图片之间的切换效果。

//实例化ImageSwitcher
        mSwitcher = (ImageSwitcher) findViewById(R.id.switcher);

        //指定转换器的 ViewSwitcher.ViewFactory
        mSwitcher.setFactory(this);

       //指定转换的动画效果
        mSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,
                android.R.anim.fade_in));
        mSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,
                android.R.anim.fade_out));


总结:
ViewSwither可以
在两个视图间转换时显示动画,一个ViewSwitcher只允许包含两个子视图,且一次仅能显示一个。常用其两个子类ImageSwitcher:转换图片时增加动画效果TextSwitcher转换文字时增加动画效果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值