ViewFlipper 视图切换组件 ViewAnimator

来源:互联网 发布:网络于技术流的意思 编辑:程序博客网 时间:2024/05/18 03:14

转自:http://android.yaohuiji.com

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

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

image

下面我们来看例子:

1、新建一个项目 Lesson46_ViewFlipper

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

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

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

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

1<?xmlversion="1.0"encoding="utf-8"?>
2<linearlayoutandroid:layout_height="wrap_content"android:layout_width="match_parent"xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/linearLayout1">
3    <textviewandroid: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>
1<?xmlversion="1.0"encoding="utf-8"?>
2<linearlayoutandroid: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    <imageviewandroid:layout_height="wrap_content"android:layout_width="fill_parent"android:id="@+id/imageView1"android:src="@drawable/apple"></imageview>
5    <textviewandroid: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的代码如下:

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 classMainActivityextendsActivity {
10    @Override
11    publicvoidonCreate(Bundle savedInstanceState) {
12        super.onCreate(savedInstanceState);
13        setContentView(R.layout.main);
14 
15        // 定义ViewFlipper
16        finalViewFlipper vf = (ViewFlipper) findViewById(R.id.viewFlipper1);
17 
18        // 设置点击监听器
19        vf.setOnClickListener(newView.OnClickListener() {
20            @Override
21            publicvoidonClick(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

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


原创粉丝点击