图片轮播是APP中比较基础,常见的控件,本次通过rollviewpager来实现简单的图片轮播
第一步:不必说,自然是先引入巨人的肩膀
compile 'com.jude:rollviewpager:1.4.6'
第二步:在布局当中定义好我们的轮播控件
<com.jude.rollviewpager.RollPagerView
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="300dp"
app:rollviewpager_play_delay="3000"/>
此处的属性可将大神的注释借用一下
app:rollviewpager_play_delay="3000" period,unit is ms。0 for no auto-play。default is 0.
app:rollviewpager_hint_gravity="center" graviengty. left,center,right。default is center.
app:rollviewpager_hint_color="#7c7c7c" color for indicator's container.default is black.
app:rollviewpager_hint_alpha="80" alpha for indicator's container。0 for complete transparent,255 for no transparent。default is 0.
app:rollviewpager_hint_paddingLeft="16dp" padding for indicator's container
app:rollviewpager_hint_paddingRight="16dp"
app:rollviewpager_hint_paddingTop="16dp"
app:rollviewpager_hint_paddingBottom="16dp"
第三步:来看一下具体逻辑
首先找到你的控件,此处我用了ButterKnife
@BindView(R.id.view_pager)
RollPagerView viewPager;
然后呢,编写Adapter
此处我们看到,有一个StaticPagerAdapter可以用,看了一下大神的写法,继承自PagerAdapter,应该很习惯其中的方法了,果然。
我们直接写死一组图,在Adapter当中,然后通过getView()方法,将这组图放进每一个position当中,很简单
private class ImageNormalAdapter extends StaticPagerAdapter {
int[] imgs = new int[]{
R.mipmap.img1,
R.mipmap.img2,
R.mipmap.img3,
R.mipmap.img4,
R.mipmap.img5,
};
@Override
public View getView(ViewGroup container, int position) {
ImageView view = new ImageView(container.getContext());
view.setScaleType(ImageView.ScaleType.FIT_START);
view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
view.setImageResource(imgs[position]);
return view;
}
@Override
public int getCount() {
return imgs.length;
}
}
那么这样子将你的Adapter设置给RollPager,搞定