上一节中为大家讲解了ImageSwitcher和TextSwitcher两个视图切换组件,本节再来介绍另一个视图切换组件--功能更丰富的ViewFlipper,使用它能够在任意的视图与视图之间切换。

       讲解ViewFlipper之前先简单了解下ViewAnimator。在制作视图动画时会用到这个ViewAnimator类。下面这幅图基本说明了ViewAnimator的作用。

ViewAnimator类继承关系图

       接下来我们来看例子:

       1、新建一个项目 Lesson46_ViewFlipper。

       2、在main.xml写入下面代码:

XML/HTML代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <linearlayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">  
  3. <viewflipper android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/viewFlipper1">  
  4.     <include android:id="@+id/layout1" layout="@layout/layout1"></include>  
  5.     <include android:id="@+id/layout2" layout="@layout/layout2"></include>  
  6. </viewflipper>  
  7. </linearlayout>  

       这里用到了include标签,学过java web的同学很容易理解,这和jsp页面里的include没啥区别。使用include我们可以把一个大的布局文件拆成多个小的文件,使用include,我们可以复用一些常用布局组合。

       3、另外两个layout1.xml 和 layout2.xml的代码分别如下:

XML/HTML代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <linearlayout android:layout_height="wrap_content" android:layout_width="match_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayout1">  
  3.     <textview android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/textView2" android:gravity="center" android:text="apple" android:textsize="20sp">  
  4.     </textview>  
  5. </linearlayout>  
XML/HTML代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <linearlayout android:layout_height="wrap_content" android:layout_width="match_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayout2">  
  3.   
  4.     <imageview android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/imageView1" android:src="@drawable/apple"></imageview>  
  5.     <textview android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/textView2" android:gravity="center" android:text="苹果" android:textsize="20sp">  
  6.     </textview>  
  7. </linearlayout>  

       4、MainActivity.java的代码如下:

Java代码
  1. package basic.android.lesson46;   
  2.   
  3. import android.app.Activity;   
  4. import android.os.Bundle;   
  5. import android.view.View;   
  6. import android.view.animation.AnimationUtils;   
  7. import android.widget.ViewFlipper;   
  8.   
  9. public class MainActivity extends Activity {   
  10.     @Override  
  11.     public void onCreate(Bundle savedInstanceState) {   
  12.         super.onCreate(savedInstanceState);   
  13.         setContentView(R.layout.main);   
  14.   
  15.         // 定义ViewFlipper   
  16.         final ViewFlipper vf = (ViewFlipper) findViewById(R.id.viewFlipper1);   
  17.   
  18.         // 设置点击监听器   
  19.         vf.setOnClickListener(new View.OnClickListener() {   
  20.             @Override  
  21.             public void onClick(View v) {   
  22.                 // 点击读取下一个视图元素   
  23.                 vf.showNext();   
  24.             }   
  25.         });   
  26.   
  27.         // 设置切入动画   
  28.         vf.setInAnimation(AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.slide_in_left));   
  29.         // 设置切出动画   
  30.         vf.setOutAnimation(AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.slide_out_right));   
  31.   
  32.     }   
  33. }  

       5、编译并运行代码,查看结果:

Android视图切换组件ViewFlipper实例

本文发布:Android开发网
本文地址:http://www.jizhuomi.com/android/course/312.html
2012年12月12日
发布:鸡啄米 分类:Android开发教程 浏览: 评论:0