ViewPager:
ViewPager提供了多个界面切换的效果,新效果有如下的特征
1.当前显示一组界面中的其中一个界面
2.用户通过左右滑动界面的时候,当前屏幕显示当前界面跟下一个界面的一部分
3.滑动结束后,当前界面自动跳转到下一界面
ViewPager源于google的补充组件 android-support-v4.jar 位置位于android sdk文件夹下的android-sdks\extras\android\support\下面
将android-support-v4,jar引入到项目中
注意:该包一定要在 android SDK Mannager中额外的下载Extras下的android support package 或者直接下载jar包到项目中引用,引入后可直接当控件使用
配置文件页面文件:
<android.support.v4.view.ViewPager android:id="@+id/viewPager1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_centerVertical="true" />
viewPager1 = (ViewPager) findViewById(R.id.viewPager1); viewPager1.setAdapter(new PageAdapter(new ArrayList<View>()));
viewPager1.setOnPageChangeListener(new OnPageChangeListener() { //页面选择 @Override public void onPageSelected(int position) { topText.setText(String.valueOf(position+1)+"/"+String.valueOf(lists.length)); } @Override public void onPageScrollStateChanged(int state) { } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } });
//获取当前窗体界面数 public int getCount() //初始化position位置的界面 public Object instantiateItem(View collection, int position) //销毁position位置的界面 public void destroyItem(View collection, int position, Object view) // 判断是否由对象生成界面 public boolean isViewFromObject(View arg0, Object arg1)
ViewFilpper:
主要用于同一个Activity屏幕的切换,最常见的效果就是一个FrameLayout里面有多个页面,比如一个系统设置页面,一个个性化设置页面
ViewFilpper是系统自带的控件之一,主要是为了两个页面切换设置动画效果ViewFilpper继承自FrameLayout下的ViewAnimator
android.widget.ViewAnimator 类继承自FrameLayout,ViewAnimator的作用是用为FramLayout里面的View的切换提供动画效果,该类有如下几个和动画相关的函数
setInAnimation:
setOutAnimation:
showNext:
showPrevious:
isFilping:
setFilpInteral:
startFilping:
stopFilping:
ViewFilpper的使用方法:
ViewFlow:android - Flow 是Android平台下一个视图切换的效果库
ViewFlow 相当于Android UI中的组件提供视屏滚动的ViewGroup ,使用Adapter进行条目绑定,文档上说,当你的ViewGroup中的子View的数目确定的时候可以使用ViewPager,当ViewGroup的子View数目不确定的时候可以使用ViewFlow
1.使用ViewFlow ,首先在你的Layout里面加入:
<org.taptwo.android.widget.ViewFlow
android:id="@+id/viewflow"
app:sidebuffer="5">
期中app:sidebuffer 属性是ViewFlow自定义的,使用这些属性的时候需要增加下面的Xml定义
xmlns:app="http://schemas.android.com/apk/res/your.application.package.here"
然后在你的Activity中添加如下的代码用于使用ViewFlow:
ViewFlow viewFlow = (ViewFlow) findViewById(R.id.viewflow); viewFlow.setAdapter(myAdapter); //设置初始view的位置 //viewFlow.setAdapter(myAdapter, ); //监听view切换事件,简单的需求可不监听 viewFlow.setOnViewSwitchListener(new ViewSwitchListener() { public void onSwitched(View v, int position) { / / Your code here } });
1.使用圆点FlowIndicator 先在Layout中定义
<org.taptwo.android.widget.CircleFlowIndicator android:padding="10dip" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/viewflowindic" android:background="#00000000" />
CircleFlowIndicator indic = (CircleFlowIndicator) findViewById(R.id.viewflowindic); viewFlow.setFlowIndicator(indic);
radius(圆点的半径)等等
2.使用标题指示器
标题只是使用之前也需要在Layout中先定义:
<org.taptwo.android.widget.TitleFlowIndicator 2 3 android:id="@+id/viewflowindic" 4 5 android:layout_height="wrap_content" 6 7 android:layout_width="fill_parent" 8 9 app:footerLineHeight="2dp" 10 11 app:footerTriangleHeight="10dp" 12 13 app:textColor="#FFFFFFFF" app:selectedColor="#FFFFC445" 14 15 app:footerColor="#FFFFC445" app:titlePadding="10dp" 16 17 app:textSize="11dp" app:selectedSize="12dp" 18 19 android:layout_marginTop="10dip" 20 21 app:clipPadding="5dp" />然后再在Activity中调用:
TitleFlowIndicator indicator = (TitleFlowIndicator) 2 3 findViewById(R.id.viewflowindic); 4 5 indicator.setTitleProvider(myTitleProvider); 6 7 viewFlow.setFlowIndicator(indicator);以上就是ViewFlow库提供的三大组件以及其用法(来自文档),使用的时候需要下载到其代码并放在你的项目中的某个包里,当然你也可以把该组件打包成jar调用
比较:
根据以上nag对是那种实现的使用要的描述,可以看出,VIewPager与ViewFlow也带有圆点和标题的位置提示,二者比较相像,ViewFlilpper使用时候主要是在有限的少数页面的切换中比较合适,并且能够自定义每一个切换的动画,对于一个应用见的画面切换比较合适,类似于ActivityGroup
ViewFlow 犹豫提供远吗,所以在扩展性能上更强,可更具需要自定义定制,比如加入循环播放等动
转载自:http://www.cnblogs.com/xingmeng/archive/2012/08/30/2664013.html