效果图
第一步 添加依赖
implementation ('com.alibaba.android:ultraviewpager:1.0.7.7@aar')
第二步 布局引用
<com.tmall.ultraviewpager.UltraViewPager
android:id="@+id/ultraViewpager"
android:layout_width="match_parent"
android:layout_height="180dp"
android:layout_margin="10dp">
</com.tmall.ultraviewpager.UltraViewPager>
第三步 继承BaseAdapter适配器,重写方法赋值
这里我是用的bitmap类型 具体实现可以自己写
public class UltraPagerAdapter extends PagerAdapter {
private List <Bitmap> list;
private Context context;
public UltraPagerAdapter(List<Bitmap> list,Context context){
this.list=list;
this.context=context;
}
@Override
public int getCount() {
return list.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view==object;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
ImageView imageView=new ImageView(context);
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
//图片加载框架=imageview.setbitmap
Glide.with(context).load(list.get(position)).into(imageView);
container.addView(imageView);
return imageView;
}
@Override
public int getItemPosition(@NonNull Object object) {
return super.getItemPosition(object);
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView((View) object);
}
}
第四步直接引用或创建初始化类
里面的注释部分为指示器,就是那几个显示位置点
private void initPager(List <Bitmap> list){
//这是一个演示,ID绑定自己写
ultraViewPager=findViewById(id);
// 这是一个演示,ID绑定自己写
PagerAdapter adapter = new UltraViewPagerAdapter(new UltraPagerAdapter(list,context));
ultraViewPager.setAdapter(adapter);
ultraViewPager.setScrollMode(UltraViewPager.ScrollMode.HORIZONTAL);
ultraViewPager.setPageTransformer(false,new UltraDepthScaleTransformer());
//内置indicator初始化
/** ultraViewPager.initIndicator();
//设置indicator样式
ultraViewPager.getIndicator()
.setOrientation(UltraViewPager.Orientation.HORIZONTAL)
.setFocusColor(Color.GREEN)
.setNormalColor(Color.WHITE)
.setRadius((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, getResources().getDisplayMetrics()));
//设置indicator对齐方式
ultraViewPager.getIndicator().setGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
//构造indicator,绑定到UltraViewPager
ultraViewPager.getIndicator().build();**/
//设定页面循环播放
ultraViewPager.setInfiniteLoop(true);
//设定页面自动切换 间隔2秒
ultraViewPager.setAutoScroll(2000);
}
注
第一张图片的效果是因为设置了 ultraViewPager.setMultiScreen(0.5f); 半屏显示
版权声明:本文为weixin_46728351原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。