羊皮书APP(Android版)开发系列(五)APP引导页实现

APP开发中,引导页展示通常是必不可少的,用来展示产品。github上有一个引导页的库,个人感觉不错,就拿来使用,地址:AppIntro

  • 导入AppIntro库的方法(两种):
    1. 方法一: 到github上下载AppIntro,解压,将library文件夹拷贝到自己项目的根目录下,重命名为app____intro____library,在settings.gradle文件中添加:include ':app',':app_____intro____library',在build.gradle文件中添加: compile project(':app_____intro____library'),重新编译后即可使用。
    2. 方法二: 直接在 build.gradle文件中添加如下代码:
repositories {
    mavenCentral()
}
dependencies {
  compile 'com.github.paolorotolo:appintro:3.4.0'
}
  • AppIntro的使用:
  • 新建SlideFragment,展示介绍页面,代码如下:
package cn.studyou.parchment.fragment;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * 基本功能:引导页Fragment
 * 创建:王杰
 * 创建时间:16/3/7
 * 邮箱:w489657152@gmail.com
 */
public class SlideFragment extends Fragment {
    private static final String ARG_LAYOUT_RES_ID = "layoutResId";

    public static SlideFragment newInstance(int layoutResId) {
        SlideFragment slideFragment = new SlideFragment();

        Bundle args = new Bundle();
        args.putInt(ARG_LAYOUT_RES_ID, layoutResId);
        slideFragment.setArguments(args);

        return slideFragment;
    }

    private int layoutResId;

    public SlideFragment() {}

    @Override
    public void onCreate( Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if(getArguments() != null && getArguments().containsKey(ARG_LAYOUT_RES_ID))
            layoutResId = getArguments().getInt(ARG_LAYOUT_RES_ID);
    }

    @Override
    public View onCreateView(LayoutInflater inflater,  ViewGroup container,  Bundle savedInstanceState) {
        return inflater.inflate(layoutResId, container, false);
    }
}
  • 新建AppIntroActivity继承自AppIntro,代码如下:
package cn.studyou.parchment.activity;

import android.os.Bundle;

import com.github.paolorotolo.appintro.AppIntro;

import cn.studyou.parchment.R;
import cn.studyou.parchment.fragment.SlideFragment;
import cn.studyou.parchment.log.L;
import cn.studyou.parchment.utils.IntentUtil;

public class AppIntroActivity extends AppIntro {

    @Override
    public void init(Bundle savedInstanceState) {

        addSlide(SlideFragment.newInstance(R.layout.intro1));
        addSlide(SlideFragment.newInstance(R.layout.intro2));
        addSlide(SlideFragment.newInstance(R.layout.intro3));
        addSlide(SlideFragment.newInstance(R.layout.intro4));
        setBarColor(getResources().getColor(R.color.green));
        setSeparatorColor(getResources().getColor(R.color.colorAccent));
        setVibrateIntensity(30);
        setSkipText(getString(R.string.skip));
        setDoneText(getString(R.string.enter));
    }

    private void startMain(){
        startActivity(IntentUtil.getLauncherIntent().setClass(getApplicationContext(),MainActivity.class));
        finish();
    }
    @Override
    public void onSkipPressed() {
        L.e("onSkipPressed");
        startMain();
    }

    @Override
    public void onDonePressed() {
        L.e("onDonePressed");
        startMain();
    }

    @Override
    public void onSlideChanged() {
        L.e("onSlideChanged");
    }

    @Override
    public void onNextPressed() {
        L.e("onNextPressed");
    }
}
  • R.layout.intro1布局文件是你想要展示的APP介绍的页面。
  • 启动APP设置跳转到此Activity即可查看效果。

layout2.png

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android干货

浅谈SnackBar(Toast大兄弟)

2604
来自专栏沃趣科技

Oracle 12c系列(7)| Non-CDB转换为PDB

当我们需要将Non-CDB数据库类型更改为PDB数据库类型时,可以使用Cloning的方式将其复制到现有的CDB中,但是该方法需要将Non-CDB中的数据文件复...

3859
来自专栏Android干货

Volley网络连接

2937
来自专栏郭霖

Android Fragment完全解析,关于碎片你所需知道的一切

我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了,这里就不再赘述。 但是Acti...

2019
来自专栏木头编程 - moTzxx

跑马灯 TextView效果设计

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

1482
来自专栏学海无涯

Android开发之Fragment回退栈

在Android开发之Fragment动态使用一文中,说到replace方法切换Fragment,会造成Fragment不断销毁、创建,但是有没有办法实现像Ac...

2994
来自专栏项勇

笔记39 | 数据存储之SharedPreferences的介绍及使用

1484
来自专栏androidBlog

常用的自定义View例子三(MultiInterfaceView多界面处理)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/...

691
来自专栏何俊林

记一次重构:Android实践从MVC架构到MVP架构

一直以来,想分享MVP的实战,因为很多项目开始并不是就是mvp架构的,可能是从传统的mvc结构变迁过来的。今天呈详给大家分享的这篇从mvc重构到mvp,让大家既...

2505
来自专栏Android干货

浅谈SnackBar(Toast大兄弟)

1244

扫码关注云+社区

领取腾讯云代金券