本文中你可以学到非常简单的 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>
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>