依赖
implementation ‘com.youth.banner:banner:1.4.10’
MainActivity
private Banner banner;
private int mpage=1;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.jifragment,container,false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
banner=view.findViewById(R.id.banner);
banner.setBannerStyle(BannerConfig.NOT_INDICATOR);
banner.setImageLoader(new ImageLoaderInterface<ImageView>() {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
UserBean.ResultBean datas= (UserBean.ResultBean) path;
com.nostra13.universalimageloader.core.ImageLoader.getInstance()
.displayImage(datas.getImageUrl(),imageView);
}
@Override
public ImageView createImageView(Context context) {
ImageView imageView = new ImageView(context);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
return imageView;
}
});
banner.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
if(i == currentPageCount - 1) {
mpage++;
loadData();
}
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
loadData();
}
String Url="http://172.17.8.100/movieApi/movie/v1/findReleaseMovieList?count=10&page=";
private int currentPageCount;
private void loadData() {
Util.getInstance().getRequest(Url + mpage, UserBean.class, new Util.Callback<UserBean>() {
@Override
public void onSuccess(UserBean o) {
if(o == null || o.getResult() == null || o.getResult().size() == 0) {
mpage = 1;
loadData();
} else {
currentPageCount = o.getResult().size();
banner.setImages(o.getResult());
banner.start();
}
}
});
}
Xml
<com.youth.banner.Banner
android:id="@+id/banner"
android:layout_width="0dp"
android:layout_height="400dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
></com.youth.banner.Banner>