最近一段时间安装新应用时,很多应用第一次启动,都是通过几个页面的切换来展示一些内容,但是第二次启动应用的时候却不出现了,样子如下图所以
我个人感觉这个效果蛮好的,于是找了一下资料,发现实现这个功能也不是挺难,主要是用到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"
/>
上面代码是在界面中现实出ViewPager,但是还需要为ViewPager的每个页卡显示内容,这里我是另外用3个xml来显示不同颜色,以便区分开来
<?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)
在这里接不贴出代码了,欢迎下载:代码下载