`

ViewSwitcher使用例子

阅读更多

ViewSwitcher 的作用简单来说就是:在两个视图间转换时显示动画 

它的两个子类应该很熟悉,ImageSwitcher:转换图片时增加动画效果TextSwitcher 转换文字时增加动画效果

 

 

API翻译

一、结构

 

public class ViewSwitcher extends ViewAnimator

        

java.lang.Object

android.view.View

         android.view.ViewGroup

                   android.widget.FrameLayout

                            android.widget.ViewAnimator

                                     android.widget.ViewSwitcher

已知直接子类

ImageSwitcherTextSwitcher

 

 

  二、概述

     在两个视图间转换时显示动画,有一个可以创建这些视图的工厂类。你可以用工厂来创建这些视图,也可以自己创建。一个ViewSwitcher只允许包含两个子视图,且一次仅能显示一个。

  (译者注:与ViewFlipper类相似,但该类不常用,常用其两个子类ImageSwitcher:转换图片时增加动画效果TextSwitcher转换文字时增加动画效果

 

  三、内部类

    interface          ViewSwitcher.ViewFactory     

    在一个ViewSwitcher里创建视图

 

  四、构造函数

public ViewSwitcher (Context context)

    构造一个新的空的视图转换器(ViewSwitcher)

    参数context  上下文

public ViewSwitcher (Context context, AttributeSet attrs)

    构造一个指定上下文、属性集合的空的视图转换器(ViewSwitcher)

    参数

    context    上下文

    attrs        属性集合

 

五、公共方法

 

public void addView(View child, int index, ViewGroup.LayoutParams params)

   添加一个指定布局参数的子视图

            参数

  child         添加的子视图

  index       添加的子视图的索引

  params    子视图的布局参数

  异常

  IllegalStateException       如果切换器中已经包含了两个视图时。

   

  public View getNextView ()

  返回下一个要显示的视图

  返回值——视图切换之后将要显示出的下一个视图

 

  public void reset ()

  重置视图转换器(ViewSwitcher)来隐藏所有存在的视图,并使转换器达到一次动画都还没有播放的状态。

 

  public void setFactory (ViewSwitcher.ViewFactory factory)

  设置用来生成将在视图转换器中切换的两个视图的工厂。也可以调用两次 addView(android.view.View, int,        android.view.ViewGroup.LayoutParams)来替代使用工厂的方法。

  参数 factory   用来生成转换器内容的视图工厂

下面利用OSChina开源代码中的一部分来演示它的具体使用

“用户登录”

布局xml:


 <ViewSwitcher 
        android:id="@+id/logindialog_view_switcher" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content">

        <RelativeLayout 

        布局。。。。

        />

        <View 
           android:id="@+id/login_loading" 
           android:layout_width="135.0dip" 
           android:layout_height="135.0dip"
           android:layout_gravity="center" 
           android:background="@anim/login_loading"/>
</ViewSwitcher>
动画类中:

 

01    动画1                                                          11   动画2

用到图层叠加(因为这里有两个动画效果)

<!-- 动画帧集合对象-->

<?xml version="1.0" encoding="UTF-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
  android:oneshot="false">

<!--动画帧对象 android:duration表示每帧动画显示的时间,放在drawable下的动画图片不能太大,否则会内存爆掉-->    
    <item android:duration="100">
        <layer-list>
            <item android:drawable="@drawable/login_loading_00" />
            <item android:drawable="@drawable/login_loading_10" />
        </layer-list>
    </item>

<item android:duration="100">
        <layer-list>
            <item android:drawable="@drawable/login_loading_01" />
            <item android:drawable="@drawable/login_loading_11" />
        </layer-list>
    </item>

    

    <item android:duration="100">
        <layer-list>
            <item android:drawable="@drawable/login_loading_02" />
            <item android:drawable="@drawable/login_loading_12" />
        </layer-list>
    </item>

</animation-list>

实体类中

初始化

private ViewSwitcher mViewSwitcher;

private View loginLoading;

 

loginLoading = (View)findViewById(R.id.login_loading);

mViewSwitcher = (ViewSwitcher)findViewById(R.id.logindialog_view_switcher);

 

loadingAnimation = (AnimationDrawable)loginLoading.getBackground();
       loadingAnimation.start();
       mViewSwitcher.showNext();//当登录成功

       mViewSwitcher.showPrevious();//当登录失败

 

分享到:
评论

相关推荐

    Android开发之ViewSwitcher用法实例

    在实际应用中,我们可以使用XML布局文件或者代码动态添加View到ViewSwitcher。例如,以下是一个简单的XML布局文件`activity_main.xml`的例子: ```xml android:layout_width="match_parent" android:layout_...

    Android开发之ImageSwitcher相册功能实例分析

    2.作为ViewSwitcher的子类,它比ViewSwitcher使用更加方便,主要体现在:①. 重写了setNext() ②. 重写了showPrevious()方法。所以其实用起来,要比ViewSwitcher更为方便。 3.中重要的是:ImageSwitcher增加了图片...

    ViewSwitch,ImageViewSwitch,TextSwitch 例子

    `res`目录存储了应用的资源,包括图像、布局、字符串等,`src`目录则是源代码所在的地方,其中可能包含了实现ViewSwitcher、ImageViewSwitcher和TextSwitcher的例子代码。 `.classpath`和`.project`文件是Eclipse...

    Android控件例子源码

    另一个3D相关的例子,可能涉及到了如何在2D平面上展示3D图像,比如使用`TextureView`或者`GLSurfaceView`来实现。 10. 7.5 dialog.rar 对话框是Android应用中常见的组件,用于向用户展示临时信息或者获取用户输入...

    android viewflipper 例子,项目源码,直接解压

    - **ViewFlipper监听器**:虽然ViewFlipper没有内置的切换事件监听,但可以通过重写`ViewSwitcher.ViewFactory`并结合`ViewSwitcher`的`setFactory()`方法来实现自定义监听。 6. **性能优化** - **延迟加载**:...

    viewflow开源例子

    1. **ViewSwitcher**: `ViewFlow` 的核心是基于 `ViewSwitcher` 的扩展,它允许开发者在水平方向上切换多个视图。`ViewSwitcher` 是一个可以切换两个子视图的容器,而 `ViewFlow` 可以管理无限数量的视图。 2. **...

    android--Gallery 的基本使用

    `ImageSwitcher`是`ViewSwitcher`的子类,专为展示图片切换设计,常与`Gallery`配合使用。它有以下特点: 1. **自动过渡**: 当`ImageSwitcher`的`View`被替换时,它会自动添加过渡动画,提供平滑的用户体验。 2....

    Android 中textSwitcher与imageSwitcher的使用

    提供的`TextSwitcherDemo`可能包含了一个简单的例子,演示了如何在按钮点击事件中使用`TextSwitcher`切换文本。通过查看这个示例代码,你可以更深入地理解这两个组件的工作原理。 总之,`TextSwitcher`和`...

    Android中ImageSwitcher的作用与定义.pdf

    `ImageSwitcher` 类是 Android 视图系统的一部分,它继承自 `ViewSwitcher`,而 `ViewSwitcher` 又继承自 `ViewAnimator`。`ViewAnimator` 是一个可以包含多个子视图并按顺序显示它们的容器。`ImageSwitcher` 专为...

    android 图片滑动应用

    在这个例子中,Adapter会负责将图片数据绑定到ImageSwitcher上,每切换一次,Adapter就会提供下一张图片。 5. **ImageView**: ImageView 是Android中的一个视图组件,用于显示图像资源。在ImageSwitcher内部,...

    ImageSwitcher范例

    【ImageSwitcher范例】 ImageSwitcher是Android SDK中的一个视图组件,主要用来在...这个例子可能涵盖了图片资源的加载、动画的设置以及事件监听等功能,帮助开发者更深入地理解ImageSwitcher的工作原理和使用技巧。

    安卓Android源码——Gallery+ImageSwitcher+ViewFlipper实现手机查看壁纸效果.zip

    它继承自`ViewSwitcher`,并且在切换视图时默认使用淡入淡出的动画。 再者,`ViewFlipper`是一个可以自动或手动翻转子视图的布局。虽然在这个特定的例子中,`ViewFlipper`可能没有直接被用到,但在类似的应用中,它...

    flipper的简单实现

    Flipper是Android SDK中的一个ViewSwitcher子类,主要用于展示和切换两个或多个View。它的核心功能是让用户能够向前或向后滑动来展示不同的视图。这在创建动态内容显示、轮播效果或者卡片翻转界面时非常有用。 2. ...

    android ImageSwitcher实现实例

    在这个例子中,我们使用了Glide库来加载网络图片,但也可以使用其他图片加载库如Picasso或Universal Image Loader。 在实际项目中,你可能需要根据具体需求对这个基础示例进行扩展,例如处理点击事件、实现无限轮播...

    文字上下滚动小demo

    这个"文字上下滚动小demo"就是一个实现此类效果的例子。主要使用了`TextSwitcher`组件,这是一个专为显示交替文本设计的视图,常用于实现动画过渡效果。 `TextSwitcher`是`ViewSwitcher`类的一个子类,它提供了两个...

    Android中Gallery和ImageSwitcher的使用实例

    在上述例子中,`Gallery`被用来显示一系列的图片供用户浏览和选择。通过设置`android:spacing`属性,我们可以控制每个项目之间的间距,`android:unselectedAlpha`则可以设置未选中项目的透明度,以提供更好的视觉...

    TextSwitcher实现文字上下左右滚动

    它继承自`ViewSwitcher`,并内置了平滑过渡的动画,使得文本在切换时更加自然流畅,提升用户体验。 `TextSwitcher` 的主要功能在于它可以无缝地从一个文本内容切换到另一个文本内容,而这个过程伴随着动画效果。...

    android 3d图片反转

    在这个例子中,`width / 2` 和 `height / 2` 是翻转轴心,0f和180f分别代表起始角度和结束角度。 4. **注意事项**: - 确保你的项目支持Android API级别11及以上,因为3D动画是在Android 3.0(API 11)引入的。 ...

    Android应用源码之GridAndImageSwitcherSample.zip

    总的来说,GridAndImageSwitcherSample是一个深入学习Android UI开发的好例子,它涵盖了数据绑定、用户交互、动画效果等多个方面,对于提升开发者在Android应用设计和实现上的技能大有裨益。通过深入研究源码,...

    安卓 图片切换android源代码+注释.doc.doc

    这个例子展示了如何结合使用`ImageSwitcher`和`Gallery`来实现一个图片轮播的效果,用户可以通过左右滑动`Gallery`来切换不同的图片,同时`ImageSwitcher`会通过设定的动画效果平滑地显示新图片。在实际应用中,可以...

Global site tag (gtag.js) - Google Analytics