ViewPager需要Android-support-v4.jar这个包的支持,来自google提供的一个附加包。大家搜下即可。
ViewPager主要用来组织一组数据,并且通过左右滑动的方式来展示。
现在的大多数应用都会有一个欢迎引导页面,如图所示,通过左右滑动来告知用户一些功能特性。
这个引导图效果用ViewPager可以很轻松的实现。
ViewPager是用来展示一组数据的,所以我们需要Adapter来绑定数据和view。先写一个Adapter:
packagecom.van.viewpage.viewpage;
importandroid.content.Context;
importandroid.support.v4.view.PagerAdapter;
importandroid.view.View;
importandroid.view.ViewGroup;
importjava.util.List;
/**
* Created by Administrator on 2016/6/5.
*/
public classViewPageAdapterextendsPagerAdapter{
//界面列表
privateListviews;
privateContextcontext;
publicViewPageAdapter(List views,Context context){
this.views= views;
this.context= context;
}
//移除不需要的view(当前的)
@Override
public voiddestroyItem(ViewGroup container,intposition, Object object) {
container.removeView(views.get(position));
}
//初始化position位置的界面(加载view)
@Override
publicObject instantiateItem(ViewGroup container,intposition) {
container.addView(views.get(position));
returnviews.get(position);
}
@Override
public intgetCount() {
return views.size();
}
//判断是否当前的view等于当前数
@Override
public booleanisViewFromObject(View view, Object object) {
returnview == object;
}
}
这里我们要绑定的每一个item就是一个引导界面,我们用一个List来保存。
通过继承ViewPagerAdapter,并实现几个我写注释的方法即可。
布局界面比较简单,加入ViewPager组件:
guidel.xml
<?xml version="1.0"encoding="utf-8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/viewpage"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
></android.support.v4.view.ViewPager>
</RelativeLayout>
MainActicity.java
packagecom.van.viewpage.viewpage;importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.support.v4.view.ViewPager;
importandroid.view.LayoutInflater;
importandroid.view.View;
importjava.util.ArrayList;
importjava.util.List;
/**
* Created by Administrator on 2016/6/5.
*/
public class MainActicity extends Activity {
privateViewPagerviewpage;
privateViewPageAdapteradapter;
privateListviews;
@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.guide);
viewpage= (ViewPager) findViewById(R.id.viewpage);
initViews();
}
private voidinitViews() {
LayoutInflater inflater = LayoutInflater.from(this);
views=newArrayList();
views.add(inflater.inflate(R.layout.one,null));
views.add(inflater.inflate(R.layout.two,null));
views.add(inflater.inflate(R.layout.three,null));
views.add(inflater.inflate(R.layout.four,null));
views.add(inflater.inflate(R.layout.five,null));
adapter=newViewPageAdapter(views,this);
viewpage.setAdapter(adapter);
}
}