android使用ViewPager实现欢迎引导页

大多数APP第一次启动的时候,都会有一个引导界面,左右滑动,到最后一张,用户点击才再次进入主界面。当第二次启动的时候,则直接进入主界面。 这种效果一般使用ViewPager实现。今天就来为大家介绍一下ViewPager的使用。

实现步骤:

使用SharedPerferences来记录是否是第一次启动APP,如果是,则转跳到Guide页面,如果不是第一次启动。就转跳到主Activity.

MainActivity:

本Activity作为Logo页面进入,使用handler来实现页面的延迟专跳。对于handler还不太了解的同学,可以来这里学习一下安卓的异步消息传递机制:http://blog.csdn.net/guolin_blog/article/details/9991569 (感谢郭神带来好文章)

private Handler mHandler = new Handler(){        @Override        public void handleMessage(Message msg) {            switch (msg.what){                case MAIN:                    Intent intent = new Intent(MainActivity.this,Main.class);                    startActivity(intent);                    finish();                    break;                case GUIDE:                    Intent intent2 = new Intent(MainActivity.this,GuideView.class);                    startActivity(intent2);                    finish();                    break;            }        }    };

此外使用SharedPreferences来读取用户启动信息

mSharedPreferences = getSharedPreferences("conf",MODE_PRIVATE);isFirst = mSharedPreferences.getBoolean("first",true);

之后进行简单的判断,这里不在累赘。

GuideActivity

这个界面是引导页的界面,我们首先在其布局文件下添加一个ViewPager之后在java文件中获取到这个ViewPager,并为这个ViewPager添加一个适配器。 这个适配器需要自己继承PagerAdapter来重写,稍后会进行讲解。

 mViewPager = (ViewPager) findViewById(R.id.viewpager);        ViewPagerAdapter adapter = new ViewPagerAdapter(mList);        mViewPager.setAdapter(adapter);

注意这个Adapter的传入参数是一个泛型为View的List。我们先向List里添加我们的View,再为最后一个view的Button添加监听事件,用来转跳到主页面;

mList = new ArrayList<>();View view = LayoutInflater.from(this).inflate(R.layout.layout1,null);        mList.add(view);        view = LayoutInflater.from(this).inflate(R.layout.layout2,null);        mList.add(view);        view = LayoutInflater.from(this).inflate(R.layout.layout3,null);        mList.add(view);        mButton = (Button) view.findViewById(R.id.button_enter);        mButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                Intent intent = new Intent(GuideView.this,Main.class);                startActivity(intent);                finish();            }        });

ViewPagerAdapter

这是ViewPager的适配器,继承于PagerAdapter,主要实现两个方法:
destroyItem();
instantiateItem();
顾名思义一个是view去掉时候的方法,一个是添加view的方法。
这里可以看到一个很熟悉的参数 container,没错,和baseAdapter的参数很像,都是用来缓存当前view的。接下来只需要调用他的removeView和addView即可。需要注意的是,需要向下转型为ViewPager。

 public void destroyItem(ViewGroup container, int position, Object object) {        ((ViewPager)container).removeView(mList.get(position));    }    @Override    public Object instantiateItem(ViewGroup container, int position) {        Log.i("wing","viewAdatper here");        ((ViewPager)container).addView(mList.get(position));        return mList.get(position);    }

另外不要忘记重写他的构造方法。传入一个泛型为view的List

    public ViewPagerAdapter(ArrayList list){        mList = list;    }

这样适配器就完成了,大家自己多写几遍就会熟练。对了,别忘了给每个view一个布局文件。

下面看看效果图:

源码下载地址

更多相关文章

  1. Android(安卓)UI开发第四十一篇——墨迹天气3.0引导界面及动画实
  2. Android(安卓)Webview组件使用总结
  3. android跳转到系统的各项设置界面
  4. Android(安卓)studio如何指定使用自己生成的keystore调试
  5. Android(安卓)中解决Viewpage调用notifyDataSetChanged()时界面
  6. Android软键盘弹出将底部栏顶上去并不会挤压界面
  7. Android中贪吃蛇游戏的学习(一)
  8. Android(安卓)Adapter适配器
  9. Android登录界面的实现

随机推荐

  1. Drawable和Bitmap
  2. Android(安卓)ndk获取手机内部存储卡的根
  3. Android(安卓)动态获取权限(6.0 , 7.0)
  4. 关于Android Studio如何更改初始布局排版
  5. Android(安卓)kotlin:json自动生成bean
  6. MediaRecorder音视频框架
  7. Android(安卓)Device Monitor结构和用法
  8. android JNI 入门
  9. Android(安卓)定时器实现的几种方式和rem
  10. Android p28使用http请求报错not permitt