Skip to content

ralfgehrer/AppIntro

 
 

Repository files navigation

Android Gems

Maven Central Android Arsenal
Get it on Google Play

AppIntro

Android Library to make a cool intro for your app.

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 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? Simple, try this method:

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.

Apps using it

If you are using AppIntro in your app and would like to be listed here, please let me know via email!

Real life examples

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

Planets

Hermes - Material IRC Client

About

Make a cool intro for your Android app.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%