http://blog.csdn.net/nainai007/article/details/7555746
最近一段时间安装新应用时,很多应用第一次启动,都是通过几个页面的切换来展示一些内容,但是第二次启动应用的时候却不出现了,样子如下图所以
我个人感觉这个效果蛮好的,于是找了一下资料,发现实现这个功能也不是挺难,主要是用到ViewPager这个东西,要使用ViewPager,需要引入附加包android-support-v4.jar,读者可以再sdk中找到,好了废话不多说了,贴代码了:
首先是布局文件,要使用一个ViewPager:
- <android.support.v4.view.ViewPager
- android:id="@+id/viewpager"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- />
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical"
- android:background="#158684" >
- </LinearLayout>
然后是在activity类中使用,代码为:
- private void initViewPager() {
- viewPager = (ViewPager) findViewById(R.id.viewpager);
- listView = new ArrayList<View>();
- LayoutInflater inflater = getLayoutInflater();
- listView.add(inflater.inflate(R.layout.lay1, null));
- listView.add(inflater.inflate(R.layout.lay2, null));
- listView.add(inflater.inflate(R.layout.lay3, null));
- viewPager.setAdapter(new MyPagerAdapter(listView));
- viewPager.setOnPageChangeListener(new MyPagerChangeListener());
- }
适配器代码为:
- public class MyPagerAdapter extends PagerAdapter {
- private List<View> list;
- public MyPagerAdapter(List<View> list) {
- this.list = list;
- }
- @Override
- public void destroyItem(View view, int index, Object arg2) {
- // TODO Auto-generated method stub
- ((ViewPager)view).removeView(list.get(index));
- }
- @Override
- public void finishUpdate(View arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public int getCount() {
- // TODO Auto-generated method stub
- return list.size();
- }
- @Override
- public Object instantiateItem(View view, int index) {
- ((ViewPager)view).addView(list.get(index), 0);
- return list.get(index);
- }
- @Override
- public boolean isViewFromObject(View view, Object object) {
- // TODO Auto-generated method stub
- return view == (object);
- }
- @Override
- public void restoreState(Parcelable arg0, ClassLoader arg1) {
- // TODO Auto-generated method stub
- }
- @Override
- public Parcelable saveState() {
- // TODO Auto-generated method stub
- return null;
- }
- @Override
- public void startUpdate(View arg0) {
- // TODO Auto-generated method stub
- }
- }
最终的效果图为
源码下载:csdn下载
以上是ViewPager的效果演示,接下来实现应用第一次启动时,进入引导页面,否则直接进入主界面的功能:
我的思路是用SharedPreferences来保存一个值,该值标志这应用是不是第一次启动,如果不是第一次启动,则从引导页面直接跳转到主界面(也可以启动一个service来现在启动那一个activity)
在这里接不贴出代码了,欢迎下载:代码下载