A simple and Elegant Showcase view for Android

Overview

Tuto Showcase

A simple and Elegant Showcase view for Android

Android app on Google Play

screen

TutoShowcase.from(this)
    .setContentView(R.layout.tuto_sample)

    .on(R.id.about) //a view in actionbar
    .addCircle()
    .withBorder()
    .onClick(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //custom action
        }
    })

    .on(R.id.swipable)
    .displaySwipableRight()

    .show();

Download

Buy Me a Coffee at ko-fi.com

Download

compile 'com.github.florent37:tutoshowcase:1.0.1'

Tutorial

You can simply limit a showcase visibility to once with .showOnce(string)

Content View

It's simple to add a content view into the TutoShowcase, you can for example add images or descriptions texts

TutoShowcase.from(this)
    .setContentView(R.layout.tuto_sample)
    ...
    .show()

screen

Indicators

You can higlight some elements to user

Circle

.on(view)
.addCircle()

screen

RoundRect

.on(view)
.addRoundRect()

screen

Actions

Some actions can be explained to the user

Scrollable

.on(view)
.displayScrollable()

Swipable Left

.on(view)
.displaySwipableLeft()

screen

Swipable Right

.on(view)
.displaySwipableRight()

screen

Events

You can listen for indicator click

.on(view)
. //your indicator
.onClick(new View.OnClickListener(){
    public void onClick(View view){
         //your action
    }
}

If you have any clickable view into your content layout

TutoShowcase.from(this)
    .setContentView(R.layout.tuto_sample)
    .onClickContentView(R.id.clickableView, new View.OnClickListener() {
        @Override
        public void onClick(View view) {
                            
        }
    })
    ...
    .show()
Android app on Google Play

Fiches Plateau Moto : https://www.fiches-plateau-moto.fr/

Comments
  • No centering round rect correctly

    No centering round rect correctly

    I am trying to use TutoShowcase to show hint in a view that is a page of a ViewPager. For any view inside that view the roundrect is displayed displaced. See the image. problem

    opened by emauro 11
  • Provide default layouts

    Provide default layouts

    Hi,

    It would be very nice including some default layouts in the library, to use with: TutoShowcase.from(this) .setContentView(R.layout.tuto_sample)

    Thanks & Regards, Marcello

    opened by marbat87 5
  • how to use it on Recycler view

    how to use it on Recycler view

    i'm using recycler view in a fragment in my app and i need to say something about first recyclerview item using this code :

    TutoShowcase.from(getActivity())
                .setContentView(R.layout.tuto)
                .on(recyclerView.getChildAt(1))
                .addCircle()
                .show();
    
    

    but when i use "recyclerView.getChildAt(1)" returns me this error :

    java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.ViewTreeObserver android.view.View.getViewTreeObserver()' on a null object reference

    what can i do about this ? thank's

    opened by Xaus 3
  • Show the ShowcaseView Once

    Show the ShowcaseView Once

    Hi florent, Great job on this library, it really simplifies creating showcase views. However, is there any feature in this library where the showcase view can be shown once after the first launch!

    Regards

    opened by kennyung6 3
  • showOnce not working

    showOnce not working

    I'm using showOnce("key") but the animation is still running every time the application opens

     TutoShowcase.from(this)
                .on(R.id.preapproveTxtVw)
                .displaySwipableLeft()
                .animated(true)
                .delayed(300)
                .duration(2000)
                .show()
                .showOnce("key");
    
    opened by mdennis10 2
  • Method for checking it a tutorial was already shown

    Method for checking it a tutorial was already shown

    It is not possible to check if a tutorial was shown or not using showOnce. Since che sharedpreferences is private it is not possible to check if the key exists or not.

    opened by emauro 1
  • Disabling auto close when showcaseview clicked

    Disabling auto close when showcaseview clicked

    I've tried to disable auto closing tutorial, and tried with setting TutoShowcase listener and onDismissed callback.Is there any other way to do this? Thanks for your effort and amazing lib!

    public void showFeedTutorial(){
        TutoShowcase.from(getActivity())
            .setContentView(R.layout.tuto_sample)
            .on(viewTutorial)
            .addRoundRect(0)
            .setListener(new TutoShowcase.Listener() {
              @Override
              public void onDismissed() {
                Log.d("Tuto","onDismissed");
              }
            })
            .show();
      }
    
    opened by adnxy 1
  • Can you only set shapes on views?

    Can you only set shapes on views?

    Great lib and thanks for your effortl

    I want to know can I set shapes on some custom layout dimensions? I dont want to set shapes to views sometimes, need custom shapes for action bar items or anything else.

    opened by adnxy 1
  • Both layouts draw at same time

    Both layouts draw at same time

    I'm having two fragments in ViewPager tab and when Showcase loads first layout it seems that at same time second layout is loaded.Screen gets darker and when clicked first time, it get some brightnest.

    OnClick methods from second fragment works on first fragment.Bot methods are called inside onViewCreated lifecycle callback. Do I need to dismiss instance of showcase when fragment is destroying?

    Here is 1.st fragment:

      public void showFeedTutorial() {
        TutoShowcase.from(getActivity())
            .setContentView(R.layout.tuto_sample)
            .on(viewTutorial)
            .addRoundRect(0)
    
            .onClickContentView(R.id.imageall, new View.OnClickListener() {
              @Override public void onClick(View view) {
                Log.d("tuto", "clicking all view");
                //dismissTutorial();
              }
            })
            .onClickContentView(R.id.title, new View.OnClickListener() {
              @Override public void onClick(View view) {
                    navigateTo(MarketFragment.class);
    
              }
            })
        .show();
    
      }
    

    Here is second fragment:

    public void showMarketTutorial() {
        TutoShowcase.from(getActivity())
            .setContentView(R.layout.tuto_sample2)
            .show();
      }
    
    opened by adnxy 0
  • Properly apply status bar offset on full-screen layout

    Properly apply status bar offset on full-screen layout

    When displaying circle above view position in layout with fitsSystemWindows flag, circle Y positon is adjusted for status bar height. This is not correct.

    This change calculate the offset depending on fitsSystemWindows flag on content layout.

    By default we try to guess fitsSystemWindows flag by checking direct child of content container, but we can always enforce out own setting by calling setFitsSystemWindows() setter.

    opened by ezaquarii 0
  • Accessing inflated layout + rectangular view(no rounded corners)

    Accessing inflated layout + rectangular view(no rounded corners)

    Hi, I've added new field 'inflatedLayout' which is assigned in setContentView and thanks to that I can later access reference to this inflatedLayout and make some runtime changes to it like changing value of TextView that is child of inflatedLayout. In addition I've added addRect() that is almost the same as addRoundRect() but without rounder corners :)

    opened by rslowinski 0
  • How to achieve drawing a simple rectangle?

    How to achieve drawing a simple rectangle?

    So I'd like to have a simple rectangle drawn instead the rounded corners one. I am having trouble in finding any method to do this, and also tried to extend the TutoShowcase proved to be a hellish task, as its construction is almost non-extendable.

    So is there any simple way other than actually downloading and manually changing the lib my self, which I'd like to avoid if possible.

    Cheers

    opened by slobodanantonijevic 0
  • Example with latest version

    Example with latest version

    Hi,

    Thanks for the lib.

    Does anyone have an example using the latest version?

    Things like this on(R.id.name) are no longer valid, there is a second parameter but I don't quite get how it works.

    Thanks

    opened by RobertoAlvarezCeballos 0
  • Show tutoShowCase in dialog.

    Show tutoShowCase in dialog.

    Is there any way we can show tutorial in the dialog ? Currently when I try to do, the tutorial is shown beneath the dialog. How can we show above the dialog?

    opened by sanjogshrestha 3
Owner
Florent CHAMPIGNY
Florent CHAMPIGNY
An elegant way to show your menu or messages.

Android View Hover In my opinion, jumping to a new activity to show your menu is a kind of wasting time and life. So, I think, we need a hover view, t

代码家 3.2k Jan 2, 2023
The ShowcaseView library is designed to highlight and showcase specific parts of apps to the user with an attractive and flat overlay.

The ShowcaseView library is designed to highlight and showcase specific parts of apps to the user with an attractive and flat overlay.

Mohammad Reza Eram 484 Dec 26, 2022
Sample app to try compose and showcase principles from Composing (UI) beyond the UI

Composing clocks sample app This is a sample app to show how to build an app that follows the practices described in the series of articles Compose (U

Jordi Saumell 84 Dec 15, 2022
Android View for displaying and selecting values in a circle-shaped View, with animations and touch gestures.

CircleDisplay Android View for displaying and selecting (by touch) values / percentages in a circle-shaped View, with animations. Features Core featur

Philipp Jahoda 287 Nov 18, 2022
FloatingView can make the target view floating above the anchor view with cool animation

FloatingView FloatingView can make the target view floating above the anchor view with cool animation Links 中文版 README Blog about FloatingView demo.ap

UFreedom 1.8k Dec 27, 2022
用于做Path动画的自定义View。 I have a path.I have a view. (Oh~),Path(Anim)View.

PathAnimView 用于做Path动画的自定义View。 I have a path.I have a view. (Oh~),Path(Anim)View. 现已经找到图片->SVG->PATH的正确姿势, Now i have a pic.I have a view. Oh~,Path(A

张旭童 1.1k Oct 28, 2022
Snake View is a simple and animated linear chart for Android.

Snake View Snake library is a simple and animation line chart for Android. Latest Version How to use Configuring your project dependencies Add the lib

Txus Ballesteros 339 Dec 14, 2022
A simple, customizable and easy to use swipeable view stack for Android.

SwipeStack A simple, customizable and easy to use swipeable view stack for Android. QuickStart Include the Gradle dependency dependencies { compil

Frederik Schweiger 1.5k Dec 30, 2022
Simple and fantastic wheel view in realistic effect for android.

Overview ![Size](https://img.shields.io/badge/Size-17 KB-e91e63.svg) Contact Preview Demo WheelPicke.APK Include Compile compile 'cn.aigestudio.wheelp

Aige 2.5k Jan 6, 2023
A simple library to let you sign (or draw lines) smoothly with your finger into a view and save it.

FingerSignView Introduction FingerSignView is a simple library that lets you finger, or draw lines, smoothly with your finger into a View and save it

Agnaldo Pereira 25 Nov 20, 2022
Simple View to change Brush Size, Alpha and Color

BrushView Simple View to change Brush Size, Alpha and Color Screenshots How to install In your build.gradle project allprojects { repositories {

Andres Ruiz 16 Jun 28, 2018
A simple and customizable two or three states Switch View

RMSwitch A simple View that works like a switch, but with more customizations. With the option to choose between two or three states. (from v1.1.0) **

Riccardo Moro 656 Dec 2, 2022
[] A simple way to "badge" any given Android view at runtime without having to cater for it in layout

Android ViewBadger A simple way to "badge" any given Android view at runtime without having to cater for it in layout. Note: If your aim is to replica

Jeff Gilfelt 3k Nov 28, 2022
Simple and lightweight UI library for user new experience, combining floating bottom navigation and bottom sheet behaviour. Simple and beautiful.

Simple and lightweight UI library for user new experience, combining floating bottom navigation and bottom sheet behaviour. Simple and beautiful.

Rizki Maulana 118 Dec 14, 2022
TileView is a subclass of android.view.ViewGroup that asynchronously displays, pans and zooms tile-based images. Plugins are available for features like markers, hotspots, and path drawing.

This project isn't maintained anymore. It is now recommended to use https://github.com/peterLaurence/MapView. MapView is maintained by Peter, one of o

Mike Dunn 1.5k Dec 29, 2022
A View on which you can freely draw, customizing paint width, alpha and color, and take a screenshot of the content. Useful for note apps, signatures or free hand writing.

FreeDrawView A View that let you draw freely on it. You can customize paint width, alpha and color. Can be useful for notes app, signatures or hands-f

Riccardo Moro 643 Nov 28, 2022
This is a picker view for android , support linkage effect, timepicker and optionspicker.(时间选择器、省市区三级联动)

Android-PickerView English Document 注意事项、详请使用方式、更新日志等,请查看 Wiki文档 Wiki文档,Wiki文档,Wiki文档 !~ 重要的事情说三遍 对于使用上有任何疑问或优化建议等,欢迎加入QQ群讨论交流技术问题。 交流群1: 387051294(推荐

Bigkoo 13.2k Jan 6, 2023
Android view that allows the user to create drawings. Customize settings like color, width or tools. Undo or redo actions. Zoom into DrawView and add a background.

DrawView Android view that allows the user to create drawings. Draw anything you like in your Android device from simple view. Customize draw settings

Oscar Gilberto Medina Cruz 839 Dec 28, 2022
A view that allows to paint and saves the result as a bitmap

Android Drawable View Sample app: An Android view that allows to paint with a finger in the screen and saves the result as a Bitmap. Importing to your

Christian Panadero 581 Dec 13, 2022