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.wflfei:auto-loop-viewpager:'
}
dependencies {
implementation("com.github.wflfei:auto-loop-viewpager:")
}
<dependency>
<groupId>com.github.wflfei</groupId>
<artifactId>auto-loop-viewpager</artifactId>
<version></version>
</dependency>
libraryDependencies += "com.github.wflfei" % "auto-loop-viewpager" % ""
:dependencies [[com.github.wflfei/auto-loop-viewpager ""]]
An Android auto scroll ViewPager which can inifinite loop. And contains a animated indicator.
Custom your adapter extends RecycleAdapter<VH extends RecycleAdapter.ViewHolder>:
private class MyAdapter extends RecycleAdapter<MyAdapter.ViewHolder> {
public List<String> datas;
@Override
protected int getCount() {
return null == datas ? 0 : datas.size();
}
@Override
protected ViewHolder onCreateViewHolder(ViewGroup container) {
SimpleDraweeView simpleDraweeView = new SimpleDraweeView(container.getContext());
ViewHolder holder = new ViewHolder(simpleDraweeView);
return holder;
}
@Override
protected void onBindViewHolder(ViewHolder holder, int position) {
holder.simpleDraweeView.setImageURI(Uri.parse(datas.get(position)));
}
@Override
protected void onRecycleViewHolder(ViewHolder holder) {
}
public class ViewHolder extends RecycleAdapter.ViewHolder {
private SimpleDraweeView simpleDraweeView;
protected ViewHolder(@NonNull View view) {
super(view);
simpleDraweeView = ((SimpleDraweeView) view);
}
}
}
And then:
mAutoLoopPager.setAdapter(new MyAdapter());
Also you can check the RecycleAdapter.java to see how does RecycleAdapter manage and recycle Views for the ViewPager;
mAutoLoopPager.setAutoPlay(boolean);
mAutoLoopPager.setAutoDuration(int);
mAutoLoopPager.setIndicatorAnimed(boolean);
layout_width
to match_parent
and leave the layout_height
with wrap_content
. In this case, the height will be calculated by the aspect ratio set here:mAutoLoopPager.setAspectRatio(float);
Thanks to gank.io. Where these images in this project are from.