本讲内容: ViewFlipper 视图切换组件 ViewAnimator
我们在上一讲用到了两个非常好用的ImageSwitcher和TextSwitcher视图切换组件。今天我们再一起学习另一个功能更强大的视图切换组件 ViewFlipper,它可以在任意视图和视图组合之间切换。在学习之前我们有必要看一下 ViewAnimator 对象。
我们制作视图动画时会发现有个ViewAnimator类,这个类的价值我画一个图给大家看就行了:
下面我们来看例子:
1、新建一个项目 Lesson46_ViewFlipper
2、在main.xml写入下面代码:
1 | <?xml version="1.0" encoding="utf-8"?> |
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> |
这里用到了include标签,学过java web的同学很容易理解,这和jsp页面里的include没啥区别。使用include我们可以把一个大的布局文件拆成多个小的文件,使用include,我们可以复用一些常用布局组合
3、另外两个layout1.xml 和 layout2.xml的代码分别如下:
1 | <?xml version="1.0" encoding="utf-8"?> |
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"> |
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"> |
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="苹果"> |
4、MainActivity.java的代码如下:
01 | package basic.android.lesson46; |
03 | import android.app.Activity; |
04 | import android.os.Bundle; |
05 | import android.view.View; |
06 | import android.view.animation.AnimationUtils; |
07 | import android.widget.ViewFlipper; |
09 | public class MainActivity extends Activity { |
11 | public void onCreate(Bundle savedInstanceState) { |
12 | super.onCreate(savedInstanceState); |
13 | setContentView(R.layout.main); |
16 | final ViewFlipper vf = (ViewFlipper) findViewById(R.id.viewFlipper1); |
19 | vf.setOnClickListener(new View.OnClickListener() { |
21 | public void onClick(View v) { |
28 | vf.setInAnimation(AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.slide_in_left)); |
30 | vf.setOutAnimation(AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.slide_out_right)); |
5、编译并运行代码,查看结果:
好了,先到这里,下次再见。