第四十六讲:用户界面 View(十三)

本讲内容: ViewFlipper  视图切换组件 ViewAnimator

我们在上一讲用到了两个非常好用的ImageSwitcher和TextSwitcher视图切换组件。今天我们再一起学习另一个功能更强大的视图切换组件 ViewFlipper,它可以在任意视图和视图组合之间切换。在学习之前我们有必要看一下 ViewAnimator 对象。

我们制作视图动画时会发现有个ViewAnimator类,这个类的价值我画一个图给大家看就行了:

image

下面我们来看例子:

1、新建一个项目 Lesson46_ViewFlipper

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

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

4、MainActivity.java的代码如下:

01package basic.android.lesson46;
02
03import android.app.Activity;
04import android.os.Bundle;
05import android.view.View;
06import android.view.animation.AnimationUtils;
07import android.widget.ViewFlipper;
08
09public 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、编译并运行代码,查看结果:

image

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

posted on 2011-11-02 11:31  moss  阅读(107)  评论(0)    收藏  举报

导航