how to display ToolTip in android?

Viewed 71017

I want to display the ToolTip(QuickAction View) when I am moving my cursor on the view. Can any one please give me the simple example for it? tooltip will only contains the text value.

12 Answers

Possibly using myView.setTooltipText(CharSequence) (from API-level 26) or TooltipCompat (prior to API-level 26) is an additonal option:

TooltipCompat.setTooltipText(myView, context.getString(R.string.myString));

Documentation says:

Helper class used to emulate the behavior of {@link View#setTooltipText(CharSequence)} prior to API level 26.

If you need to show tool tip for any view, you can use CheatSheet util class from Roman Nurik. (Uses Toast and optionally content description to show tooltip.)

It is

Android helper class for showing cheat sheets (tooltips) for icon-only UI elements on long-press. This is already default platform behavior for icon-only action bar items and tabs. This class provides this behavior for any other such UI element

add this to your button

android:tooltipText="Tooltip text goes here"

Based on ban's Answer, I've created this method.

It does not assume anything about the toast size. Simply places the tool tip gravity based on where the view is relative to the window (i.e. left/right/above/below the center of the window). The toast always starts from center of the view and will stretch towards the right/left/bottom/top respectively.

See Example

private static void setToastGravity(View view, Toast toast) {
    final Rect viewRect = new Rect(); // view rect
    final Rect windowRect = new Rect(); // window rect
    view.getGlobalVisibleRect(viewRect);
    view.getWindowVisibleDisplayFrame(windowRect);

    int offsetX;
    int offsetY;
    int gravityX;
    int gravityY;

    if (viewRect.centerY() > windowRect.centerY()) {
        // above
        offsetY = windowRect.bottom - viewRect.centerY();
        gravityY = Gravity.BOTTOM;
    } else {
        // tooltip below the view
        offsetY = viewRect.centerY() - windowRect.top;
        gravityY = Gravity.TOP;
    }

    if (viewRect.centerX() > windowRect.centerX()) {
        // tooltip right of the view
        offsetX = windowRect.right - viewRect.centerX();
        gravityX = Gravity.END;
    } else {
        // tooltip left of the view
        offsetX = viewRect.centerX() - windowRect.left;
        gravityX = Gravity.START;
    }

    toast.setGravity(gravityX | gravityY, offsetX, offsetY);
}

https://github.com/skydoves/Balloon

This library provides a lightweight, popup like tooltips, fully customizable with an arrows and animations. 100% Kotlin with all necessary documentation. It is actively being managed as well.

Here are some gif from their page;

e

another,

e

I will Happy to help you

Please sir Try this -> android-simple-tooltip

I hope that will work for you

Example : Release Add it in your root build.gradle at the end of repositories:

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

Add the dependency

dependencies {
    implementation 'com.github.douglasjunior:android-simple-tooltip:0.2.3'
}

Add this code in your MainActivity class and make an object for your view which will you want to bind with tooltip

View yourView = findViewById(R.id.your_view);

    new SimpleTooltip.Builder(this)
        .anchorView(yourView)
        .text("Texto do Tooltip")
        .gravity(Gravity.END)
        .animated(true)
        .transparentOverlay(false)
        .build()
        .show();

enter image description here

Related