Skip to content

msoner1/AppIntro

Repository files navigation

Maven Central Android Arsenal Android Gems

Sample App:

Get it on Google Play

AppIntro

AppIntro is an Android Library that helps you make a cool intro for your app, like the ones in Google apps.

Watch YouTube video here.

##How to use Add this to your build.gradle:

repositories {
    mavenCentral()
}

dependencies {
  compile 'com.github.paolorotolo:appintro:3.2.0'
}

Create a new Activity that extends AppIntro:

public class MyIntro extends AppIntro {

    // Please DO NOT override onCreate. Use init
    @Override
    public void init(Bundle savedInstanceState) {

        // Add your slide's fragments here
        // AppIntro will automatically generate the dots indicator and buttons.
        addSlide(first_fragment);
        addSlide(second_fragment);
        addSlide(third_fragment);
        addSlide(fourth_fragment);
        
        // Instead of fragments, you can also use our default slide
        // Just set a title, description, background and image. AppIntro will do the rest
        addSlide(AppIntroFragment.newInstance(title, description, image, background_colour));

        // OPTIONAL METHODS
        // Override bar/separator color
        setBarColor(Color.parseColor("#3F51B5"));
        setSeparatorColor(Color.parseColor("#2196F3"));

        // Hide Skip/Done button
        showSkipButton(false);
        showDoneButton(false);

        // Turn vibration on and set intensity
        // NOTE: you will probably need to ask VIBRATE permesssion in Manifest
        setVibrate(true);
        setVibrateIntensity(30);
    }

    @Override
    public void onSkipPressed() {
    // Do something when users tap on Skip button.
    }

    @Override
    public void onDonePressed() {
    // Do something when users tap on Done button.
    }
}

Please, DO NOT override onCreate. Just use init instead

Layout 2

If you want to try new layout (as seen in Google's Photo app), just extend AppIntro2 in your Activity. That's all :)

public class MyIntro extends AppIntro2 {
    [...]
}



### Easy implementation of Slide Fragments As you can see, things have changed in AppIntro 3.0.0. Now it's so easy to add new slides to AppIntro.

For example: * Copy the class **SampleSlide** from my [example project](https://github.com/PaoloRotolo/AppIntro/blob/master/example/src/main/java/com/github/paolorotolo/appintroexample/SampleSlide.java). * Add a new slide with ```addSlide(SampleSlide.newInstance(R.layout.your_slide_here));```

There's no need to create one class for fragment anymore. :)

I've never used fragments...

No problem, just use this method and AppIntro will generate a new slide for you.

addSlide(AppIntroFragment.newInstance(title, description, image, background_colour));

Animations

AppIntro comes with some pager animations. Choose the one you like and then active it with:

// Put this method in init()
setFadeAnimation();

Available animations:

setFadeAnimation()
setZoomAnimation()
setFlowAnimation()
setSlideOverAnimation()
setDepthAnimation()

If you want to create nice parallax effect or your own custom animation, create your own PageTransformer and call:

// Put this method in init()
setCustomTransformer(transformer);

Click here to see how I did it in the example app.

Android M ready

Android M introduced some exiting updates about permissions.
Let's say your Slide A talks about using location. As you go to Slide B, the app can actually requests location permission.

How can you do it? Like this:

onDotSelected(index) {
  if (index == 1) {
    // Code to ask permission here
  }
}

Example

See example code here on Github. You can also see it live downloading this app from Google Play.

Real life examples

Do you need inspiration? A lot of apps are using AppIntro out there:

Planets

Hermes - Material IRC Client

Apps using it

If you are using AppIntro in your app and would like to be listed here, please let us know opening a new issue!

About

Make a cool intro for your Android app.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%