Carousel Figure and PagerAdapter

Banner layout file

Dependence guide

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main2Activity">

    <com.youth.banner.Banner
        android:id="@+id/banne1"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </com.youth.banner.Banner>

</LinearLayout>

Banner master class

public class Main2Activity extends AppCompatActivity {

    Banner banner;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        banner =findViewById(R.id.banne1);
        ArrayList<Integer> list = new ArrayList<>();
        list.add(R.drawable.tu4);
        list.add(R.drawable.tu2);
        list.add(R.drawable.tu3);
        list.add(R.drawable.tu1);

        ArrayList<String> titles= new ArrayList<>();
        titles.add("标题一");
        titles.add("标题二");
        titles.add("标题三");
        titles.add("标题四");


        banner.setImages(list);
        banner.setImageLoader(new ImageLoad());
        banner.setBannerTitles(titles);

        banner.setDelayTime(500);
        banner.isAutoPlay(true);
        banner.setIndicatorGravity(BannerConfig.CENTER);
        banner.setBannerAnimation(Transformer.DepthPage);
        banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);
        banner.start();

    }
    }

Custom class inherits ImageLoader

   public  class  ImageLoad extends ImageLoader{

@Override
public void displayImage(Context context, Object path, ImageView imageView) {
    imageView.setImageResource(Integer.parseInt(path.toString()));
}
}

Renderings
Here Insert Picture Description

PagerAdapter layout

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main2Activity"
    android:clipChildren="false"
    >

    <android.support.v4.view.ViewPager
        android:id="@+id/view"
        android:clipChildren="false"
        android:layout_margin="100dp"
        android:layout_width="match_parent"
        android:overScrollMode="never"
        android:layout_height="match_parent">

        <android.support.v4.view.PagerTabStrip
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        </android.support.v4.view.PagerTabStrip>
    </android.support.v4.view.ViewPager>

</RelativeLayout>

PagerAdapter main class

public class Main2Activity extends AppCompatActivity {

    List<ImageView> list=new ArrayList<>();
    ViewPager viewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        viewPager= findViewById(R.id.view);

        ImageView imageView = new ImageView(this);
        imageView.setImageResource(R.drawable.tu1);

        ImageView imageView1 = new ImageView(this);
        imageView1.setImageResource(R.drawable.tu3);

        ImageView imageView2 = new ImageView(this);
        imageView2.setImageResource(R.drawable.tu4);

        list.add(imageView);
        list.add(imageView1);
        list.add(imageView2);



        String[] strings={"标题一","标题二","标题三","标题四"};

    //        Fra myAdapter = new Fra(list,strings);
            MyAdapter myAdapter = new MyAdapter(list, strings);
            viewPager.setAdapter(myAdapter);
            viewPager.setPageMargin(40);
            viewPager.setOffscreenPageLimit(4);

        viewPager.setPageTransformer(false,new MyViewPager());

    }

    class MyViewPager implements ViewPager.PageTransformer {

        @Override
        public void transformPage(@NonNull View view, float v) {
            float man=0.65f;
            float scal=man+(1-man)*(1-Math.abs(v));
            if (v<0){
                view.setScaleX(scal);
                view.setScaleY(scal);

            }else if (v==0){
                view.setScaleX(1);
                view.setScaleY(1);
            }else if (v<=1){
                view.setScaleX(scal);
                view.setScaleY(scal);

            }
        }
    }
    }

adapter

public class MyAdapter extends PagerAdapter {


     List<ImageView> list;String[] strings;
    public MyAdapter(List<ImageView> list, String[] strings) {

        this.list=list;
        this.strings=strings;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
        return view==o;
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        container.removeView(list.get(position));
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        container.addView(list.get(position));
        return list.get(position);
    }

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return strings[position];
    }
    }

Renderings
Here Insert Picture Description





Guess you like

Origin blog.csdn.net/wangwei_weibo/article/details/90523510