Android开发--实现Android引导页

几乎每个app都有引导页,下面我们来做一个引导页的实现。

引导页,是指软件首次进入或者更新完成后,软件显示的页面,一般展示软件特色功能或者更新的内容。

先判断是否第一次启动app,如果是,则进入引导页(左右滑动切换查看,滑动到最后一页点击按钮进入首页)。

如果不是,则直接进入首页

下面我们用代码来实现这个功能:

1、打开Android Studio,新建一个项目StartApp,新建一个空activity,命名为StartActivity

StartActivity.java代码如下。

public class StartActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_start);
        initView();
    }

    private void initView() {
        SharedPreferences sp=getSharedPreferences("name",MODE_PRIVATE);
        boolean is=sp.getBoolean("ok",true);
        //判断是否为第一次打开软件
        if (is){
            SharedPreferences.Editor editor=sp.edit();
            editor.putBoolean("ok",false);
            editor.apply();
            //跳转到引导页
            startActivity(new Intent(StartActivity.this,IntroductoryActivity.class));
            finish();
        }else {
            //直接进入首页
            startActivity(new Intent(StartActivity.this,MainActivity.class));
            finish();
        }

    }
}
IntroductoryActivity会报红,不用担心,是因为目前还没有新建该activity,第三步新建好,这里就不会报红了。

2、在AndroidManifest.xml文件中,将启动页面设置为.StartActivity。就是把<intent-filter>里面的代码放在StartActivity下面。如图所示:

3、新建一个activity页面,命名为IntroducttoryActivity

在IntroducttoryActivity.xml中代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".IntroductoryActivity">
    <androidx.viewpager.widget.ViewPager
        android:id="@+id/introductory_viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>

4、新建4个引导页。这里就不需要新建空Activity了,按照下面图片的步骤新建。

新建下面4个xml文件

 

  每个xml文件,只需要添加下面一行代码,该行代码是为该页面添加背景图片,每个xml文件的图片不同。(将图片放在drawable文件夹下面,这里就可以调用)。具体代码如下:

introductory_a.xml

introductory_b.xml

 introductory_c.xml

 introductory_d.xml

 

5、新建一个类,命名为IntroductoryAdapter.java,用作适配器,并继承PagerAdapter。

代码如下:

public class IntroductoryAdapter extends PagerAdapter {
    private List<View>list;

    public IntroductoryAdapter(List<View> list) {
        this.list = list;
    }


    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
        return view==object;
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        View view=list.get(position);
        container.addView(view);
        return view;
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        container.removeView(list.get(position));
    }
}

6、接下来回到IntroductoryActivity.java页面,添加适配器,初始化viewPager和4个引导页,并设置第4个引导页的Button按钮的点击事件。代码如下:

public class IntroductoryActivity extends AppCompatActivity {
    private ViewPager mViewPage;
    private Button mButton;
    private List<View> viewList;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //隐藏标题栏
        getSupportActionBar().hide();
        setContentView(R.layout.activity_introductory);
        initView();
        initAdapter();
        initStart();
    }
    /**
     * 设置第4个引导页的textView文本的点击事件
     */
    private void initStart() {
        mButton=viewList.get(3).findViewById(R.id.btn_open);
        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(IntroductoryActivity.this,MainActivity.class));
                IntroductoryActivity.this.finish();
            }
        });
    }
    /**
     * 适配器
     */
    private void initAdapter() {
        IntroductoryAdapter adapter=new IntroductoryAdapter(viewList);
        mViewPage.setAdapter(adapter);
    }

    /**
     * viewPager和4个引导
     */
    private void initView() {
        mViewPage=findViewById(R.id.introductory_viewPager);
        viewList=new ArrayList<>();
        viewList.add(getView(R.layout.introductory_a));
        viewList.add(getView(R.layout.introductory_b));
        viewList.add(getView(R.layout.introductory_c));
        viewList.add(getView(R.layout.introductory_d));
    }

    private View getView(int resId) {
        return LayoutInflater.from(this).inflate(resId,null);
    }
}

7、实现效果:

在app安装后第一次进入的时候,会进入引导页。 

 到这里,你已经实现了引导页的基本功能,接下来可以根据需要,去为引导页添加背景图片和布局等等。加油!

源码文件:

链接: https://pan.baidu.com/s/1WdYh2YqNbWjlk30ScuF9Yg 提取码: yphc 复制这段内容后打开百度网盘手机App,操作更方便哦

有什么不懂的地方,欢迎评论区讨论。

猜你喜欢

转载自blog.csdn.net/Waterme10n/article/details/124190432