Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.ongakuer:circleindicator:2.1.6'
}
dependencies {
implementation("com.github.ongakuer:circleindicator:2.1.6")
}
<dependency>
<groupId>com.github.ongakuer</groupId>
<artifactId>circleindicator</artifactId>
<version>2.1.6</version>
</dependency>
libraryDependencies += "com.github.ongakuer" % "circleindicator" % "2.1.6"
:dependencies [[com.github.ongakuer/circleindicator "2.1.6"]]
A lightweight indicator like in nexus 5 launcher
<img src="/screenshot.gif" width="300">dependencies {
implementation 'me.relex:circleindicator:2.1.6'
}
dependencies {
implementation 'me.relex:circleindicator:1.3.2'
}
| Class | Widget | | --------------------------------------------- | ----------------------------- | | me.relex.circleindicator.CircleIndicator | ViewPager | | me.relex.circleindicator.CircleIndicator2 | RecyclerView | | me.relex.circleindicator.CircleIndicator3 | ViewPager2 (AndroidX) |
ViewPager viewpager = (ViewPager) view.findViewById(R.id.viewpager);
viewpager.setAdapter(adapter);
CircleIndicator indicator = (CircleIndicator) view.findViewById(R.id.indicator);
indicator.setViewPager(viewpager);
// optional
adapter.registerDataSetObserver(indicator.getDataSetObserver());
RecyclerView recyclerView = view.findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(adapter);
PagerSnapHelper pagerSnapHelper = new PagerSnapHelper();
pagerSnapHelper.attachToRecyclerView(recyclerView);
CircleIndicator2 indicator = view.findViewById(R.id.indicator);
indicator.attachToRecyclerView(recyclerView, pagerSnapHelper);
// optional
adapter.registerAdapterDataObserver(indicator.getAdapterDataObserver());
ViewPager2 viewpager = view.findViewById(R.id.viewpager);
viewpager.setAdapter(mAdapter);
CircleIndicator3 indicator = view.findViewById(R.id.indicator);
indicator.setViewPager(viewpager);
// optional
adapter.registerAdapterDataObserver(indicator.getAdapterDataObserver());
CircleIndicator indicator = view.findViewById(R.id.indicator);
indicator.createIndicators(5,0);
indicator.animatePageSelected(2)
<me.relex.circleindicator.CircleIndicator
android:id="@+id/indicator"
android:layout_width="match_parent"
android:layout_height="48dp"/>
| Properties | Default Value | | ----------------------------- | ----------------------------- | | app:ci_width | 5dp | | app:ci_height | 5dp | | app:ci_margin | 5dp | | app:ci_drawable | R.drawable.white_radius | | app:ci_drawable_unselected | R.drawable.white_radius | | app:ci_animator | R.animator.scale_with_alpha | | app:ci_animator_reverse | 0 | | app:ci_orientation | horizontal | | app:ci_gravity | center |