最近一段时间安装新应用时,很多应用第一次启动,都是通过几个页面的切换来展示一些内容,但是第二次启动应用的时候却不出现了,样子如下图所以
我个人感觉这个效果蛮好的,于是找了一下资料,发现实现这个功能也不是挺难,主要是用到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)
在这里接不贴出代码了,欢迎下载:代码下载