1. 要使用ViewPager,必须要创建 PagerAdapter。 这里创建一个 ViewPagerAdapter来继承PagerAdapter
public class ViewPagerAdapter extends PagerAdapter{ private List<View> views; // 我们引导页的list private Context context; // 上下文 public ViewPagerAdapter(List<View> views, Context context) { this.views = views; this.context = context; } // 移除一个view @Override public void destroyItem(ViewGroup container, int position, Object object) { //super.destroyItem(container, position, object); container.removeView(views.get(position)); } // 加载一个view @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(views.get(position)); return views.get(position); } @Override public int getCount() { // 必写的方法 返回当前views的数量 return this.views.size(); } @Override public boolean isViewFromObject(View view, Object object) { //必写的方法 判断当前的view是否是我们需要的对象 return (view == object); } }
2. 创建我们引导页的视图
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <!--filpInterval 设置View之间切换的时间间隔 (在androidStudio上面跑不起来 可以不需要) persistentDrawingCache 持久化绘画缓存 --> <android.support.v4.view.ViewPager android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#00000000" android:persistentDrawingCache="animation" android:id="@+id/viewpage" > </android.support.v4.view.ViewPager> </RelativeLayout>
3. 创建引导页的图片视图 one.xml和two.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView"
android:background="@drawable/guide1"/> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView2" android:background="@drawable/guide2"/> </LinearLayout>
4. 在我们的activity中使用
1 public class Guide extends Activity{ 2 3 private ViewPager vp; 4 private ViewPagerAdapter vpAdapter; 5 private List<View> views; 6 7 8 protected void onCreate(Bundle savedInstanceState) { 9 super.onCreate(savedInstanceState); 10 setContentView(R.layout.guide);//加载guide.xml 视图 11 this.initView(); 12 13 System.out.println("onCreate"); 14 } 15 16 // 初始化view 17 public void initView() { 18 /* 19 * Inflater英文意思是膨胀,在Android中应该是扩展的意思吧。 20 LayoutInflater的作用类似于 findViewById(), 21 不同点是LayoutInflater是用来找layout文件夹下的xml布局文件,并且实例化! 22 而 findViewById()是找具体某一个xml下的具体 widget控件(如:Button,TextView等)。 23 * 24 * */ 25 LayoutInflater inflater = LayoutInflater.from(this); 26 views = new ArrayList<View>(); 27 views.add(inflater.inflate(R.layout.one, null)); // 加载视图1 28 views.add(inflater.inflate(R.layout.two, null)); // 加载视图2 29 30 vpAdapter = new ViewPagerAdapter(views, this); // 创建我们的 adapter 31 vp = (ViewPager) findViewById(R.id.viewpage); 32 vp.setAdapter(vpAdapter); // viewpage绑定 adapter 33 } 34 }
5. 运行就有引导页的两张图片,可以来回切换。
原文:http://www.cnblogs.com/shaoshao/p/5904369.html