用户界面 View(十三) (转载)

本讲内容: ViewFlipper  视图切换组件 ViewAnimator
我们在上一讲用到了两个非常好用的ImageSwitcher和TextSwitcher视图切换组件。今天我们再一起学习另一个功能更强大的视图切换组件 ViewFlipper,它可以在任意视图和视图组合之间切换。在学习之前我们有必要看一下 ViewAnimator 对象。
我们制作视图动画时会发现有个ViewAnimator类,这个类的价值我画一个图给大家看就行了:
1.png
下面我们来看例子:
1、新建一个项目 Lesson46_ViewFlipper
2、在main.xml写入下面代码:

 

  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的代码分别如下:

  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>
复制代码

4、MainActivity.java的代码如下:

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


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

好了,先到这里,下次再见。

posted @ 2012-06-06 11:42  Johnny Yan  阅读(136)  评论(0)    收藏  举报