Android——ViewPager的滑动切换 支持三种状态

效果图

在这里插入图片描述
在这里插入图片描述
第一步 添加依赖

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版权协议,转载请附上原文出处链接和本声明。