强大的Viewpager轮播实现

来源:互联网 发布:淘宝保证金1000不见了 编辑:程序博客网 时间:2024/06/06 12:28
本文中你可以学到非常简单的 viewpager 无限轮播,并且自带强大的动画效果
1*  build.gradle  ----  dependencies  ----   compile 'com.bigkoo:convenientbanner:1.1.4'


//layout

<com.bigkoo.convenientbanner.ConvenientBanner        android:layout_width="match_parent"        android:id="@+id/viewpager"        android:layout_height="200dp">    </com.bigkoo.convenientbanner.ConvenientBanner>


//activity
package com.example.liangshaoteng.cbviewholdercreator;import android.content.Context;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ImageView;import com.bigkoo.convenientbanner.CBPageAdapter;import com.bigkoo.convenientbanner.CBViewHolderCreator;import com.bigkoo.convenientbanner.ConvenientBanner;import com.bigkoo.convenientbanner.OnItemClickListener;import java.util.ArrayList;public class MainActivity extends AppCompatActivity implements OnItemClickListener {    private ArrayList<Integer> data=new ArrayList<>();    private ConvenientBanner convenientbanner;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initview();    }    private void initview() {        data.add(R.drawable.q1);        data.add(R.drawable.q2);        data.add(R.drawable.q3);        data.add(R.drawable.q4);        data.add(R.drawable.q5);        data.add(R.drawable.q6);        convenientbanner = (ConvenientBanner) findViewById(R.id.viewpager);        convenientbanner.setPages(new CBViewHolderCreator() {            @Override            public Object createHolder() {                return new NetworkImageHolderView();            }<span style="white-space:pre"></span>//动画的切换        },data).setPageTransformer(ConvenientBanner.Transformer.AccordionTransformer).startTurning(2000)                .setPageIndicator(new int[]{R.drawable.shar,R.drawable.shar2})                .setOnItemClickListener(this);    }    @Override    public void onItemClick(int position) {    }    public class NetworkImageHolderView implements CBPageAdapter.Holder<Integer> {        ImageView imageView;        @Override        public View createView(Context context) {            imageView = new ImageView(context);            imageView.setScaleType(ImageView.ScaleType.FIT_XY);            return imageView;        }        @Override        public void UpdateUI(Context context, int position, Integer data) {            imageView.setImageResource(data);        }    }}

//小圆点

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"><item>    <shape xmlns:android="http://schemas.android.com/apk/res/android"        android:shape="oval" >        <solid android:color="#f00" />        <stroke android:width="1dp" android:color="#0f0"/>        <size android:width="5dp" android:height="5dp"/>    </shape></item></selector>

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item>    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">        <size android:width="5dp" android:height="5dp" />        <solid android:color="#ccc" />        <corners android:radius="9dp" />        <stroke android:width="1dp" android:color="#0f0" />    </shape>    </item></selector>



1 0
原创粉丝点击