本讲内容: ViewFlipper 视图切换组件 ViewAnimator
我们在上一讲用到了两个非常好用的ImageSwitcher和TextSwitcher视图切换组件。今天我们再一起学习另一个功能更强大的视图切换组件 ViewFlipper,它可以在任意视图和视图组合之间切换。在学习之前我们有必要看一下 ViewAnimator 对象。
我们制作视图动画时会发现有个ViewAnimator类,这个类的价值我画一个图给大家看就行了:
下面我们来看例子:
1、新建一个项目 Lesson46_ViewFlipper
2、在main.xml写入下面代码:
- <?xml version="1.0" encoding="utf-8"?>
- <linearlayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">
- <viewflipper android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/viewFlipper1">
- <include android:id="@+id/layout1" layout="@layout/layout1"></include>
- <include android:id="@+id/layout2" layout="@layout/layout2"></include>
- </viewflipper>
- </linearlayout>
复制代码
这里用到了include标签,学过java web的同学很容易理解,这和jsp页面里的include没啥区别。使用include我们可以把一个大的布局文件拆成多个小的文件,使用include,我们可以复用一些常用布局组合3、另外两个layout1.xml 和 layout2.xml的代码分别如下:
- <?xml version="1.0" encoding="utf-8"?>
- <linearlayout android:layout_height="wrap_content" android:layout_width="match_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayout1">
- <textview android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/textView2" android:gravity="center" android:text="apple" android:textsize="20sp">
- </textview>
- </linearlayout>
复制代码
4、MainActivity.java的代码如下:
- package basic.android.lesson46;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.animation.AnimationUtils;
- import android.widget.ViewFlipper;
- public class MainActivity extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- // 定义ViewFlipper
- final ViewFlipper vf = (ViewFlipper) findViewById(R.id.viewFlipper1);
- // 设置点击监听器
- vf.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- // 点击读取下一个视图元素
- vf.showNext();
- }
- });
- // 设置切入动画
- vf.setInAnimation(AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.slide_in_left));
- // 设置切出动画
- vf.setOutAnimation(AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.slide_out_right));
- }
- }
复制代码
5、编译并运行代码,查看结果:
好了,先到这里,下次再见。