Android应用开发基础篇(11)-----ViewFlipper
链接地址:http://www.cnblogs.com/lknlfy/archive/2012/03/01/2376067.html
一、概述
ViewFlipper这个部件是用来实现多页显示的,多页之间的显示一般通过手势的滑动来实现,比如处于Home界面时,可以通过滑动来显示另一页,有点像Activity之间的切换。下面的实现没有涉及到手势识别这个功能。
二、要求
掌握ViewFlipper的使用。
三、实现
新建工程MyFlipper,修改/res/layout/main.xml文件,在里面添加一个ViewFlipper,完整的main.xml文件如下:

1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="fill_parent"
4 android:layout_height="fill_parent"
5 android:orientation="vertical" >
6
7 <ViewFlipper
8 android:id="@+id/viewflipper"
9 android:layout_width="fill_parent"
10 android:layout_height="fill_parent"
11 >
12
13 </ViewFlipper>
14
15 </LinearLayout>

在/res/layout下新建2个文件firstview.xml和secondview.xml。这两个文件的内容几乎一样,只是显示的内容不一样,firstview.xml如下:

1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 android:layout_width="fill_parent"
3 android:layout_height="fill_parent"
4 android:orientation="vertical" >
5
6 <TextView
7 android:layout_width="fill_parent"
8 android:layout_height="wrap_content"
9 android:text="这是第一个View"
10 android:textColor="#FFFF0000"
11 android:gravity="center_horizontal"
12 android:textSize="20dip"
13 />
14
15
16 <Button
17 android:id="@+id/firstbutton"
18 android:layout_width="fill_parent"
19 android:layout_height="wrap_content"
20 android:text="显示第二个View"
21 />
22
23
24 </LinearLayout>

secondview.xml如下:

1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="fill_parent"
4 android:layout_height="fill_parent"
5 android:orientation="vertical" >
6
7 <TextView
8 android:layout_width="fill_parent"
9 android:layout_height="wrap_content"
10 android:text="这是第二个View"
11 android:textColor="#FF0000FF"
12 android:gravity="center_horizontal"
13 android:textSize="20dip"
14 />
15
16 <Button
17 android:id="@+id/secondbutton"
18 android:layout_width="fill_parent"
19 android:layout_height="wrap_content"
20 android:text="显示第一个View"
21 />
22
23
24 </LinearLayout>

接着,修改MyFlipperActivity.java文件,主要是定义一个ViewFlipper对象,向它添加两个View,设置两个按钮的监听,在监听里显示前、后一个View。

1 package com.nan.flipper;
2
3 import android.app.Activity;
4 import android.os.Bundle;
5 import android.view.LayoutInflater;
6 import android.view.View;
7 import android.widget.Button;
8 import android.widget.ViewFlipper;
9
10 public class MyFlipperActivity extends Activity
11 {
12 private ViewFlipper mViewFlipper = null;
13 private LayoutInflater mLayoutInflater = null;
14
15 private Button firstButton = null;
16 private Button secondButton = null;
17
18 /** Called when the activity is first created. */
19 @Override
20 public void onCreate(Bundle savedInstanceState)
21 {
22 super.onCreate(savedInstanceState);
23 setContentView(R.layout.main);
24
25 mViewFlipper = (ViewFlipper)this.findViewById(R.id.viewflipper);
26
27 mLayoutInflater = LayoutInflater.from(MyFlipperActivity.this);
28 //将布局文件firstview.xml变为View对象
29 View firstView = mLayoutInflater.inflate(R.layout.firstview, null);
30 //将布局文件secondview.xml变为View对象
31 View secondView = mLayoutInflater.inflate(R.layout.secondview, null);
32 //添加View
33 mViewFlipper.addView(firstView);
34 //添加View
35 mViewFlipper.addView(secondView);
36
37 firstButton = (Button)firstView.findViewById(R.id.firstbutton);
38 //设置按钮监听
39 firstButton.setOnClickListener(new View.OnClickListener()
40 {
41
42 @Override
43 public void onClick(View v)
44 {
45 // TODO Auto-generated method stub
46 //显示后一个View
47 mViewFlipper.showNext();
48 }
49 });
50
51 secondButton = (Button)secondView.findViewById(R.id.secondbutton);
52 //设置按钮监听
53 secondButton.setOnClickListener(new View.OnClickListener()
54 {
55
56 @Override
57 public void onClick(View v)
58 {
59 // TODO Auto-generated method stub
60 //显示前一个View
61 mViewFlipper.showPrevious();
62 }
63 });
64
65 }
66
67 }

好了,运行该程序:

点击一下“显示第二个View”按钮,效果如下:

好了,完成。
如果加上手势识别的话就可以通过滑动来切换页面了。
Android应用开发基础篇(11)-----ViewFlipper的更多相关文章
- Android应用开发基础篇(1)-----Button
Android应用开发基础篇(1)-----Button 一.概述 Button,顾名思义就是按钮的意思,它主要的功能是响应用户按下按钮时的动作. 二.应用 新建一个工程, ...
- Android应用开发基础篇(3)-----ListView
一.概述 ListView是一个列表显示控件,它的应用非常广泛,在很多应用程序中都可以看到它的身影,比如来电通,网易新闻等等,特别是QQ.因此非常有必要熟练掌握它. 二.要求 能够利用ListView ...
- Android应用开发基础篇(4)-----TabHost(选项卡)
一.概述 TabHost是一种用来显示标签的组件,不清楚?看一下来电通这个应用就知道了.这个组件用起来与其他组件不太一样,它需要继承TabActivity这个类,还有它的布局文件与我们平时用的也有些不 ...
- Android应用开发基础篇(12)-----Socket通信
链接地址:http://www.cnblogs.com/lknlfy/archive/2012/03/03/2378669.html 一.概述 网络通信无论在手机还是其他设备上都应用得非常广泛,因此掌 ...
- Android应用开发基础篇(14)-----自定义标题栏
一.概述 每一个应用程序默认的标题栏(注意与状态栏的区别)只有一行文字(新建工程时的名字),而且颜色.大小等都是固定的,给人的感觉比较单调.但当程序需要美化的时候,那么修改标题栏是就是其中一项内容,虽 ...
- Android应用开发基础篇(13)-----GestureDetector(手势识别)
链接地址:http://www.cnblogs.com/lknlfy/archive/2012/03/05/2381025.html 一.概述 GestureDetector是一个用于识别手势的类,这 ...
- Android应用开发基础篇(12)-----Socket通信(转载)
转自:http://www.devdiv.com/android_socket_-blog-258060-10594.html 一.概述 网络通信无论在手机还是其他设备上都应用得非常广泛,因此掌握网络 ...
- Android应用开发基础篇(2)-----Notification(状态栏通知)
一.概述 Notification这个部件的功能是在状态栏里显示消息提醒,比如有未读的短信或者是未接的电话,那么状态栏里都会有显示,更或者是从某个应用(比如QQ,酷我音乐等等)里按Home键 ...
- Android应用开发基础篇(16)-----ScaleGestureDetector(缩放手势检测)
链接地址:http://www.cnblogs.com/lknlfy/archive/2012/03/11/2390274.html 一.概述 ScaleGestureDetector这个类是专门用来 ...
随机推荐
- Android中ViewStub组件使用
1. 概述: ViewStub组件和<include>标签的作用类似,主要是为了提高布局的重用性,及布局的模块化.它们之间最大的差别是,ViewStub中的布局不会随着它所在布局的渲染而渲 ...
- [LeetCode][Python]18: 4Sum
# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 18: 4Sumhttps://oj.leetcode.com/problem ...
- display的table和cell外加table-layout:fixed等分布局,外加换行,word-wrap:break-word
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- C++重载运算符的规则
(1)C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载. 例如,有人觉得BASIC中用“* *”作为幂运算符很方便,也想在C++中将“* *”定义为幂运算符,用“3* *5”表示3 ...
- javaScript 工作必知(六) delete in instanceof
in in 判断 左边 的字符串或者能转换成字符串的是否属于 右边 的属性. var data = { x: 1, y: 4 };//定义了直接对象 alert("x" in d ...
- nodejs在服务器上运行
nodejs运行之后,关掉链接,网站运行就会断开,需要安装forever,后台执行. 安装方法如下(在windows和Linux下都能运行)://forever的安装: npm install fo ...
- BootStrap 模态框禁用空白处点击关闭问题
模态框为信息编辑窗口,涉及好多内容,填了半天,若一不小心点了空白处,那就前功尽弃了..... 所以我们很有必要禁用鼠标点击空白处模态框关闭的功能. $('#myModal').modal({backd ...
- 关于K-Means算法
在数据挖掘中,K-Means算法是一种cluster analysis的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法. 问题 K-Means算法主要解决的问题如下图所示. ...
- sql 练习(3)
1.打印九九乘法表 ) ,exp)) A, ,exp))B, ,exp))C, ,exp))D, ,exp))E, ,exp))F, ,exp))G, ,exp))H, ,exp))I from ( ...
- Android学习笔记(不定时更新)
<2014-03-20>设置按钮的不同状态 1.res/ layout/ [文件名]myselector.xml 2.把两张不同的按钮图片放到drawable-xxxx文件夹里,mysel ...