我理解的ViewPager是一个容器,跟ListView类似,需要跟适配器(PagerAdapter)搭配使用。
在布局文件中声明ViewPager十分简单,跟其他控件一样。
<android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="fill_parent" android:layout_height="fill_parent" />
然后在Activity里面获得。
mViewPager = (ViewPager)findViewById(R.id.viewPager);
ViewPager这个容器现在已经创建成功了,需要在界面上显示数据的话,就要将数据装入ViewPager容器。 通过方法setAdapter来实现数据装入。
定义一个类,继承PagerAdapter,重写里面的方法。
private class MyPagerAdapter extends PagerAdapter { @Override public int getCount() { return mGuideImageId.length; } @Override public Object instantiateItem(View arg0, int arg1) { ImageView view = new ImageView(MainActivity.this); view.setImageResource(mGuideImageId[arg1]); view.setScaleType(ScaleType.CENTER_CROP); if(arg1 == (mGuideImageId.length-1)){//最后一个页面监听点击事件,启动APP view.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(MainActivity.this, AppActivity.class); startActivity(intent); finish(); } }); } ((ViewPager)arg0).addView(view); return view; } @Override public int getItemPosition(Object object) { return POSITION_NONE; } @Override public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager)arg0).removeView((ImageView)arg2); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public void restoreState(Parcelable arg0, ClassLoader arg1) { } @Override public Parcelable saveState() { return null; } @Override public void startUpdate(View arg0) { } @Override public void finishUpdate(View arg0) { } }
其中比较重要的方法就是
getCount:该方法的返回值表示该ViewPager有几个页面
instantiateItem:初始化显示界面
destroyItem:移除显示界面
最后通过setAdapter方法将适配器与容器绑定
mViewPager.setAdapter(mMyPagerAdapter);
现在ViewPager已经能实现图片的切换,并且在最后一幅图片被点击时,会启动新的Activity!!!
现在要实现在每个界面的底部设置小圆点来表示ViewPager总共有几个界面和当前显示的是第几个界面。效果如下:
1 在布局文件里加上一个LinearLayout作为小圆点的父控件
<LinearLayout android:id="@+id/layoutIndicator" android:layout_width="fill_parent" android:layout_height="10dp" android:layout_alignParentBottom="true" android:layout_marginBottom="20dp" android:gravity="center_horizontal" android:orientation="horizontal" > </LinearLayout>
2 在Activity里面根据界面的个数动态的添加小圆点
mLayoutIndicator = (LinearLayout)findViewById(R.id.layoutIndicator); for(int i = 0; i < mGuideImageId.length; i++) { ImageView imageView = new ImageView(this); imageView.setImageResource(R.drawable.guide_page_indicator); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(10, 10); lp.setMargins(0, 0, 5, 0); imageView.setLayoutParams(lp); mLayoutIndicator.addView(imageView); } ((ImageView)mLayoutIndicator.getChildAt(0)).setImageResource(R.drawable.guide_page_indicator_focused);//设置当前显示的界面小圆点与其他的不同
3 监听ViewPager的界面改变事件,当界面改变时,小圆点也要跟着改变。
mViewPager.setOnPageChangeListener(new OnPageChangeListener(){ public void onPageSelected(int position) { ((ImageView)mLayoutIndicator.getChildAt(position)).setImageResource(R.drawable.guide_page_indicator_focused); ((ImageView)mLayoutIndicator.getChildAt(mImgIndex)).setImageResource(R.drawable.guide_page_indicator); mImgIndex = position; } public void onPageScrollStateChanged(int arg0) { } public void onPageScrolled(int arg0, float arg1, int arg2) { } });
简单的程序启动引导功能就搞定了!
相关推荐
使用ViewPager实现欢迎引导页面,几乎源码的每一行都有注释,写的通俗易懂,非常清晰。
通过ViewPager实现开机引导界面,具体通过手指滑动图片进行切换
(安卓APP项目源代码)使用ViewPager实现左右滑动翻页(安卓APP项目源代码)使用ViewPager实现左右滑动翻页(安卓APP项目源代码)使用ViewPager实现左右滑动翻页(安卓APP项目源代码)使用ViewPager实现左右滑动翻页...
安卓app开发项目-使用ViewPager实现左右滑动翻页(源码).zip安卓app开发项目-使用ViewPager实现左右滑动翻页(源码).zip安卓app开发项目-使用ViewPager实现左右滑动翻页(源码).zip安卓app开发项目-使用ViewPager实现...
android ViewPager实现手机引导页
使用ViewPager实现图片轮播效果,包括能自动轮播,左右无限制滑动,本人亲测,请放心下载
使用ViewPager实现帖子列表的功能
Android基于Fragment+ViewPager制作的简单开机动画以及引导页Demo源码,我的资源中还有一个FragmentDemo是不能够左右滑动翻页的,都是免费下载,有兴趣的可以下载学习
android ViewPager实现引导页效果
使用ViewPager来实现Tab效果,解决了ImageButton不可点击的Bug
Android-Idea博客:Android中如何使用ViewPager实现类似laucher左右拖动效果源码
实现android 底部导航的方式有好几种如:fragment:、TabActivity、ViewGroup、viewPager等,这里介绍使用viewPager实现底部导航。 先说说使用viewPager实现的原因 1、fragment a 我们需要使用fragment的话,我们只能...
计算机毕业设计 - 使用ViewPager实现左右滑动翻页.,保证可靠运行,毕业生可参考,免费资源下载! 计算机毕业设计 - 使用ViewPager实现左右滑动翻页.,保证可靠运行,毕业生可参考,免费资源下载! 计算机毕业设计 -...
使用ViewPager+Fragment实现页面切换
简单的ViewPager实例,介绍ViewPager的简单实现
使用ViewPager实现高仿launcher拖动效果.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
使用ViewPager+AcitivityGroup划屏实现
利用RaidoButton和ViewPager实现TabHost和Fragment 的功能
基于ViewPager实现的新手引导页 1.底部圆点跟随手指移动 2.最后一页带进出主界面按钮