ViewFlipper的功能与用法
ViewFlipper组件继承了ViewAnimator,它可调用addView(View v)添加多个组件,一旦向ViewFlipper中添加了多个组件之后,ViewFlipper可使用动画控制多个组件之间的切换效果。
ViewFlipper与之前介绍的AdapterViewFlipper有较大的相似性,它们可以控制组件切换的动画效果。它们的区别是:ViewFlipper需要开发者通过addView(View v)添加多个View,而AdapterViewFlipper则只要传入一个Adapter,Adapter将会负责提供多个View。因此ViewFlipper可以指定与AdapterViewFlipper相同的XML属性。
实例:自动播放的图片库
该实例与前面介绍的AdapterViewFlipper实例非常相似,区别只是该实例直接定义了该ViewFlipper所包含的View组件。下面是该实例的界面布局文件。
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- >
- <ViewFlipper android:id="@+id/details"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:flipInterval="1000" >
- <ImageView android:src="@drawable/java"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" />
- <ImageView android:src="@drawable/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" />
- <ImageView android:src="@drawable/ee"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" />
- </ViewFlipper>
- <Button android:text="<"
- android:onClick="prev"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:layout_alignParentLeft="true"/>
- <Button android:text="自动播放"
- android:onClick="auto"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:layout_centerInParent="true"/>
- <Button android:text=">"
- android:onClick="next"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:layout_alignParentRight="true"/>
- </RelativeLayout>
上面的布局文件中定义了一个ViewFlipper,并在该ViewFlipper中定义了三个ImageView,这意味着该ViewFlipper包含了三个组件。接下来在Activity代码中即可调用ViewFlipper的showPrevious()、showNext()等方法控制ViewFlipper显示上一个、下一个子组件。为了控制组件切换时的动画效果,还需要调用ViewFlipper的setInAnimation()、setOutAnimation()方法设置动画效果。
下面是该Activity的代码。
- package org.crazyit.helloworld;
- import android.os.Bundle;
- import android.app.Activity;
- import android.view.Menu;
- import android.view.View;
- import android.widget.ViewFlipper;
- public class ViewFlipperTest extends Activity {
- private ViewFlipper viewFlipper;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.view_flipper_test);
- viewFlipper=(ViewFlipper)findViewById(R.id.details);
- }
- public void prev(View source)
- {
- viewFlipper.setInAnimation(this,R.anim.slide_in_right);
- viewFlipper.setInAnimation(this,R.anim.slide_out_left);
- //显示下一个组件
- viewFlipper.showPrevious();
- //停止自动播放
- viewFlipper.stopFlipping();
- }
- public void next(View source)
- {
- viewFlipper.setInAnimation(this,R.anim.slide_in_left);
- viewFlipper.setInAnimation(this,R.anim.slide_out_right);
- //显示下一个组件
- viewFlipper.showNext();
- //停止自动播放
- viewFlipper.stopFlipping();
- }
- public void auto(View source)
- {
- viewFlipper.setInAnimation(this,R.anim.slide_in_left);
- viewFlipper.setInAnimation(this,R.anim.slide_out_right);
- //自动播放
- viewFlipper.startFlipping();
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.view_flipper_test, menu);
- return true;
- }
- }
运行上面的Activity代码即可看到如下效果:
ViewFlipper的功能与用法的更多相关文章
- Android 自学之画廊视图(Gallery)功能和用法
Gallery与之前讲的Spinner有共同的父类:AbsSpinner,表明Gallery和Spinner都是一个列表框.他们之间的区别在于Spinner显示的是一个垂直的列表框,而Gallery显 ...
- 搜索框(SearchView)的功能与用法
SearchView是搜索框组件,它可以让用户在文本框内输入汉字,并允许通过监听器监控用户输入,当用户用户输入完成后提交搜索按钮时,也通过监听器执行实际的搜索. 使用SearchView时可以使用如下 ...
- 数值选择器(NumberPicker)的功能与用法
数值选择器用于让用户输入数值,用户既可以通过键盘输入数值,也可以通过拖动来选择数值.使用该组件常用如下三个方法. setMinValue(int minVal):设置该组件支持的最小值. setMax ...
- 日历视图(CalendarView)组件的功能和用法
日历视图(CalendarView)可用于显示和选择日期,用户既可选择一个日期,也可通过触摸来滚动日历.如果希望监控该组件的日历改变,可调用CalendarView的setOnDateChangeLi ...
- 星级评分条(RatingBar)的功能和用法
星级评分条与拖动条有相同的父类:AbsSeekBar,因此它们十分相似.实际上星级评分条与拖动条的用法.功能都十分接近:它们都是允许用户通过拖动条来改变进度.RatingBar与SeekBar最大区别 ...
- 拖动条(SeekBar)的功能和用法
拖动条和进度条非常相似,只是进度条采用颜色填充来表明进度完成的程序,而拖动条则通过滑块的位置来标识数值——而且拖动条允许用户拖动滑块来改变值,因而拖动条通常用于对系统的某种数值进行调节,比如调节音量等 ...
- StackView的功能和用法
StackView也是AdapterViewAnimator的子类,它也用于显示Adapter提供的系列View.SackView将会以“堆叠(Stack)”方式来显示多个列表项. 为了控制Stack ...
- MySQL常用存储引擎功能与用法详解
本文实例讲述了MySQL常用存储引擎功能与用法. MySQL存储引擎主要有两大类: 1. 事务安全表:InnoDB.BDB. 2. 非事务安全表:MyISAM.MEMORY.MERGE.EXAMPLE ...
- MessageDigest的功能及用法(加密解密)
MessageDigest的功能及用法 MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法.信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度 ...
随机推荐
- Myeclipse8.5中svn插件安装方法总结
[转]http://lwcheng1985.iteye.com/blog/696143 有改动 方法一:在线安装 1.打开HELP->MyEclipse Configuration Cent ...
- hadoop Yarn运行机制
- HDU 4115 Eliminate the Conflict
2-SAT,拆成六个点. #include<cstdio> #include<cstring> #include<cmath> #include<stack& ...
- POJ 3905 Perfect Election
2-SAT 裸题,搞之 #include<cstdio> #include<cstring> #include<cmath> #include<stack&g ...
- ecstore中kvstore之memcached
memcached的安装 详细见 http://blog.csdn.net/motian06/article/details/17558831 memcached扩展的安装 详细见 http://bl ...
- 计算机学院大学生程序设计竞赛(2015’12) 1009 The Magic Tower
#include<cmath> #include<cstdio> #include<cstring> #include<algorithm> using ...
- LaTeX 多个图片共用一个题注的实现--子图形
http://blog.sina.com.cn/s/blog_58b8951801000a9e.html \begin{figure}\centering\subfigure[这是第一幅图]{\lab ...
- asp.net mvc 文件压缩下载
压缩文件相关的类: public class ZIPCompressUtil { public static Tuple<bool, Stream> Zip(string strZipTo ...
- 一元线性回归分析及java实现
http://blog.csdn.net/hwwn2009/article/details/38414911 一元线性回归分析及java实现 2014-08-07 11:02 1072人阅读 评论(0 ...
- tinyxml2库的使用--MFC工程
在编写应用程序的时候,经常需要动态加载某些数据,这种情况下微软的ini文件是蛮好的选择,但是平台的通用性比较差,使用xml的话就比较强一点,但是解析比较复杂,型号有牛人已经开发出了直接读写xml的库, ...