转自:http://android.yaohuiji.com
我们在上一讲用到了两个非常好用的ImageSwitcher和TextSwitcher视图切换组件。今天我们再一起学习另一个功能更强大的视图切换组件 ViewFlipper,它可以在任意视图和视图组合之间切换。在学习之前我们有必要看一下 ViewAnimator 对象。
我们制作视图动画时会发现有个ViewAnimator类,这个类的价值我画一个图给大家看就行了:
下面我们来看例子:
1、新建一个项目 Lesson46_ViewFlipper
2、在main.xml写入下面代码:
1 | <? xml version = "1.0" encoding = "utf-8" ?> |
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 > |
这里用到了include标签,学过java web的同学很容易理解,这和jsp页面里的include没啥区别。使用include我们可以把一个大的布局文件拆成多个小的文件,使用include,我们可以复用一些常用布局组合
3、另外两个layout1.xml 和 layout2.xml的代码分别如下:
1 | <? xml version = "1.0" encoding = "utf-8" ?> |
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" > |
1 | <? xml version = "1.0" encoding = "utf-8" ?> |
4 | < imageview android:layout_height = "wrap_content" android:layout_width = "fill_parent" android:id = "@+id/imageView1" android:src = "@drawable/apple" ></ imageview > |
5 | < textview android:layout_height = "wrap_content" android:layout_width = "fill_parent" android:id = "@+id/textView2" android:gravity = "center" android:text = "苹果" android:textsize = "20sp" > |
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、编译并运行代码,查看结果:
好了,先到这里,下次再见。