Android(安卓)APP都有的引导、欢迎界面 详解
APP都有的引导、欢迎界面 详解
1.每个App几乎都会有个引导界面以及欢迎界面。
2.欢迎、引导界面的思路:
3.首先解析第一次进入APP。
一。如何知道用户是第一次进来
一般我们在SharedPreferences中 保存是否是第一次进入
SharedPreferences perPreferences = getSharedPreferences(ContantValues.FRISTLOGIN, MODE_PRIVATE);isFirstIn = perPreferences.getBoolean(ContantValues.ISfRIST, true);if (!isFirstIn) {//到主界面} else {//到引导页面Editor editor = perPreferences.edit();editor.putBoolean(ContantValues.ISfRIST, false);editor.commit();}
当用户进入APP的时候,先去获取是否第一次进入APP的布尔值。 如果第一次 则为true 否则
为false。
一。获取到了是第一次进来之后?
接下来第一次进去,对应的用intent 转跳到另一个Activity (引导Activity)
在转到了引导界面之后,还要做一件非常重要的事情,那就是将是否是第一次进入APP
的布尔值赋值为false
否则直接转跳到主界面。
一。跳转了界面后做什么?
首先转跳到主界面比较简单,直接略过。
转跳到引导页需要做的事情。
1.用户滑动引导页面上的图片
2.到了最后一页,需要给用户提示的按钮(比如 开始体验)
滑动的控件 肯定是 ViewPager
如果不了解怎么用,可以参考: ViewPager详解
可以使用 ViewPager+FragmentAdapter 也可以像上面的那篇博客里写的继承baseAdapter
结合使用。
接下来贴个简单的代码,如果引导页比较少 也可以建议这样做:
views = new ArrayList();View fViews = inflater.inflate(R.layout.guide_adapterview, null);((TextView)fViews.findViewById(R.id.first_login)).setVisibility(View.GONE);View sViews = inflater.inflate(R.layout.guide_adapterview, null);((ImageView) sViews.findViewById(R.id.guide_image)).setImageResource(R.drawa ble.splash2);views.add(fViews);views.add(sViews);vpAdapter = new ViewPagerAdapter(this, views);vp = (ViewPager) findViewById(R.id.viewpager);vp.setAdapter(vpAdapter); //开始体验按钮loginActivity = (TextView) views.get(1).findViewById(R.id.first_login); loginActivity.setOnClickListener(this); //滑动监听vp.addOnPageChangeListener(this);
vpAdapter = new ViewPagerAdapter(this, views); 切换容器里的view
而且每个引导页的布局都是用同样的。
一。引导页上的 小圆圈 索引?
这个可以自己用图片imageview 来实现。但是如果 有100个引导页 要用100个imageview?
我自己写了一个 索引变换 的自定义View 很简洁 也很容易拓展。
注:app:number 是需要几个小圆圈。
最后根据viewpage的监听事件 来选择绘制哪个不同的索引 小圆圈
这个自定义View的源代码 后面会发出来。
效果图:
源代码:
Demo
更多相关文章
- android的环境搭建
- Android(安卓)初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
- Android(安卓)ApiDemos示例解析(4):App->Activity->Custom Dialo
- Android(安卓)UI开发详解之ActionBar
- Android(安卓)6.0 Marshmallow root 方法
- Android(安卓)ViewPager 实现多个页面切换滑动
- 使用Fragment让程序界面一分为多
- android安装sdk详解
- 怎么定时刷新界面