BalloonPopup

Additional

Language
Java
Version
0.2.8 (Mar 29, 2017)
Created
Dec 23, 2016
Updated
Mar 29, 2017 (Retired)
Owner
Beppi's App Studios (BeppiMenozzi)
Contributors
alexandre-g
Beppi's App Studios (BeppiMenozzi)
2
Activity
Badge
Generate
Download
Source code
APK file

Show card

BalloonPopup

Displays a round or squared popup attaching it to a View. Allows animations and automatic display and hide, or persistence of the balloon when updating its value. Uses the Builder pattern for maximum ease.




Setup

In your project's build.gradle file:

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

In your Application's or Module's build.gradle file:

dependencies {
    ...
    compile 'com.github.BeppiMenozzi:BalloonPopup:0.2.8'
    ...
}

Minimal usage

BalloonPopup bp = BalloonPopup.Builder(getApplicationContext(), myView)
                    .text("myText")
                    .show();

To show it again:

bp.showAgain();

To display different text:

bp.updateText(newText);

Examples

In addition to the simple example included, this library is used in my Knob Selector library, that contains useful examples and an interesting way to use this library. Test it out.

Customize

Available methods in the Builder:

  bp = BalloonPopup.Builder(getApplicationContext(), findViewById(R.id.button))
                    .text("text")               // set the text displayed (String or resource)
                    .timeToLive(2000)           // Millseconds before closing the popup. 0 = persistent
                    .animation(fade_and_pop)    // animation style used. Available:
                                                // pop, scale, fade, fade75
                                                // and all the possible combinations.
                                                // When fade75 is used (up to alpha .75) the view is slightly transparent
                    .shape(rounded_square)      // Circle (oval) or rounded square
                    .bgColor(Color.CYAN)        // unused yet
                    .fgColor(Color.RED)         // text color
                    .gravity(bg)                // gravity relative to the attach view
                    .textSize(6)                // text size
                    .offsetX(10)                // offsets to move the position accordingly
                    .offsetY(15)
                    .positionOffset(10, 15)
                    .drawable(R.drawable.bg_circle) // custom background drawable
                    .layoutRes(R.layout.customview) // custom layout for the popup window
                    .show();                    // create, display and return the balloon

Available methods on the balloon:

            bp.isShowing();                     // returns wether the balloon is currently visibile
            bp.restartLifeTime();               // restarts the time to live, postponing the closure
            bp.updateText();                    // updates the text and displays it again
            bp.updateTextSize();                // updates text size and displays it again
            bp.updateFgColor();                 // updates text color and displays it again
            bp.updateBgColor();                 // updates background color: available only from Lollipop (>= 21)
            bp.updateOffset();                  // updates position and displays it again
            bp.updateGravity();                 // updates gravity and displays it again
            bp.updateLifeTimeToLive();          // updates time to live
            bp.showAgain();                     // show again the previous balloon

Most of these methods ask a boolean parameter restartLifeTime. If this is false, in case of update, if the balloon is already showing, its life is not made longer and its closure remains scheduled as before. As default this parameter is true (so whenever an update is done, the time to live is reset).

New in 0.2.8

  • Included alexandre-g additions: ** Allow custom views for dynamically built layouts ** Allow disabling tap-to-dismiss ** Allow to force showing only within screen bounds ** Allow dismissing popup

New in 0.2.2

  • bgcolor for >= Lollipop (21)
  • fixed crash if built inside onCreate()
  • increased minApk from 9 to 11

Known bugs

  • On emulators with version < 4.4.4 / KitKat / Api 19 it can crash.
  • It doesn't scroll when the attached view is in a scrollview.

Author

  • Beppi Menozzi

License

The MIT License (MIT)

Copyright (c) 2016 Beppi Menozzi

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.