: viewpage实现带有动画的引导页,供大家参考,具体内容如下
好了,又到我们学习基础控件的时候了,其实引导页很简单,就是五张图片而已
<强>一、:viewpage实现传统的引导页强>
传统的:viewpage实现引导页和列表视图是一样道理的,只是把列表视图的物品换成图片,把BaseAdapter换成PagerAdapter,我们先来看下传统引导页的效果图
<强>步骤一:强>
既然用到的是:viewpage,那么xml文件就必须要有:viewpage,细心的你,可能会发现最后一页还有个按钮的出现,没错,xml文件中也要有个按钮
& lt; RelativeLayout xmlns: android=" http://schemas.android.com/apk/res/android " android: layout_width=" match_parent " android: layout_height=癿atch_parent”比; & lt; android.support.v4.view.ViewPager android: id=癅 + id/vp_guide” android: layout_width=" match_parent " android: layout_height=" match_parent "/比; & lt;按钮 android: id=癅 + id/bt_main” android: layout_width=" wrap_content " android: layout_height=" wrap_content " android: layout_alignParentBottom=" true " android: layout_centerInParent=" true " android: layout_marginBottom=" 50 dp” android:背景=" @color/colorPrimary” android:填充=" 6 dp " android:文本="立即开启” android:输入textColor=" # fff” android: textSize=" 16 dp " android:可见性="了"/比; & lt;/RelativeLayout> >之前<强>步骤二:强>
开头也说了,:viewpage其实就和ListView一样的,需要一个适配器,那么就从适配器入手.Google提供了一个专门适配:viewpage的适配器,PagerAdapter
公开课GuideAdapter延伸PagerAdapter { 私人List视图; 私人上下文语境; 公共GuideAdapter (List 视图、上下文语境){ 这一点。上下文=上下文; 这一点。观点=视图; } 公共对象instantiateItem(视图容器,int位置){ ((:viewpage)容器).addView (views.get(位置); 返回views.get(位置); } 公共空间destroyItem(视图容器,int位置、对象对象){ ((:viewpage)容器).removeView (views.get(位置); } 公共int getCount () { 返回views.size (); } 公共布尔isViewFromObject(视图arg0,对象__arg1) { 返回(arg0==__arg1); } } >之前 基本:viewpage的适配器都是这么写的,就是往:viewpage中添加名单传过来的视图和删除名单传过来的观点,可以说是每个:viewpage的模板
<强>步骤三:强>
我们找到对应的:viewpage,然后设置适配器,代码中的initViews, initListener, initData是按顺序执行下去的,这段代码不难,很容易看懂
公共类GuideActivity BaseActivity实现:viewpage延伸。OnPageChangeListener { 私人:viewpage vp_guide; 私人int [] imgId={R.drawable。guide_center_1 R.drawable。guide_center_2 R.drawable.guide_center_3, R.drawable。guide_center_4 R.drawable.guide_center_5}; 私人ListmImageViews; 私人GuideAdapter适配器; 私人按钮bt_main; @Override 公共空间initViews () { setContentView (R.layout.activity_guide); vp_guide=(: viewpage) findViewById (R.id.vp_guide); bt_main=(按钮)findViewById (R.id.bt_main); } @Override 公共空间initListener () { bt_main.setOnClickListener(这个); vp_guide.setOnPageChangeListener(这个); } @Override 公共空间initData () {//初始化引导资源 ,mImageViews=new ArrayList<的在(); for (int i=0;我& lt;imgId.length;我+ +){ ImageView ImageView=new ImageView(这个); imageView.setScaleType (ImageView.ScaleType.CENTER_CROP); imageView.setImageResource (imgId[我]); mImageViews.add (imageView); }//设置引导页 适配器=new GuideAdapter (mImageViews,); vp_guide.setAdapter(适配器); } @Override 公共空间processClick(查看v) { 开关(v.getId ()) {//按钮点击事件,跳转到主页面 案例R.id.bt_main: 目的意图=new (GuideActivity意图。这一点,MainActivity.class); startActivity(意图); 完成(); 打破; } } @Override 公共空间> & lt;活动 android: name=" .Activity.GuideActivity " android:主题=" @android:风格/Theme.NoTitleBar.Fullscreen”/比; 安卓控件:viewpage实现带有动画的引导页