Add dot page indicators to an Android app with swipeable onboarding or tutorial screens
Choose from nine animation styles, worm, drop, swap, scale, and more, to match an app's look
Connect the indicator to a ViewPager with one XML attribute so it tracks page changes automatically
Handle a dynamic page count that changes at runtime without writing extra update logic
Add one line to build.gradle dependencies, place an XML tag in your layout, no other configuration required.
PageIndicatorView is a small Android library that adds the row of dots (or similar markers) you typically see at the bottom of a swipeable screen. Those dots tell you which page you are currently on and how many pages exist in total. The library is designed for Android's ViewPager, which is the built-in component developers use to create left-right swipeable screens inside an app. The library supports nine distinct animation styles for the dots when the user swipes between pages. Options range from a simple color change or a size scale effect, to more visual ones like a worm shape that stretches between dots, a drop animation, or a swap. Developers pick the style that best fits their app's look, and all styles have been available since early versions of the library. Adding the library to an Android project requires a one-line entry in the project's dependency list. Once added, the indicator can be placed in a layout file using an XML tag, and a handful of attributes let you set colors, sizes, padding, and the animation style. You can also point the indicator directly at a ViewPager so it automatically tracks page changes without any extra code. An optional dynamic count setting means the dots update automatically if the number of pages changes at runtime. For situations where automatic ViewPager linking is not practical, such as when the pager sits inside a scrolling list of items, the README recommends setting the selected dot manually through a simple page-change callback. The library requires Android API level 14 or above, which covers virtually all Android devices still in use. The project is licensed under the Apache 2.0 license and is maintained by Roman Danylyk. Release notes are published on the GitHub releases page.
← romandanylyk on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.