您的位置:首页 > 移动开发 > Android开发

android-auto-scroll-view-pager-master的使用

2016-04-05 00:10 609 查看

简介

自动循环播放的轮播条

github地址:android-auto-scroll-view-pager



使用方法

1.在build.gradle中添加

compile ('cn.trinea.android.view.autoscrollviewpager:android-auto-scroll-view-pager:1.1.2') {
exclude module: 'support-v4'
}


2.在布局文件中定义

<cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="180dp" />


3.代码中初始化

private AutoScrollViewPager auto_view_pager;
auto_view_pager = (AutoScrollViewPager)findViewById(R.id.auto_view_pager);


4.初始化数据

//添加图片的集合
images = new ArrayList<>();
ImageView imageView = new ImageView(this);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setImageResource(R.drawable.pic11);
images.add(imageView);
imageView = new ImageView(this);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setImageResource(R.drawable.pic22);
images.add(imageView);
imageView = new ImageView(this);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setImageResource(R.drawable.pic33);
images.add(imageView);
imageView = new ImageView(this);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setImageResource(R.drawable.pic44);
images.add(imageView);


5.设置auto_view_pager的adapter

auto_view_pager.setAdapter(new MyAdapter());
//解决最后一个跳转到第一个闪动问题
auto_view_pager.setCurrentItem((Integer.MAX_VALUE / 2 - Integer.MAX_VALUE / 2 % images.size()));

class MyAdapter extends PagerAdapter {

@Override
public int getCount() {
return Integer.MAX_VALUE;
}

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

@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(images.get(position % images.size()));
return images.get(position % images.size());
}

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


6.设置auto_view_pager的参数

//设置延时时间
auto_view_pager.setInterval(2000);
//设置轮播的方向 AutoScrollViewPager.RIGHT/AutoScrollViewPager.LEFT
auto_view_pager.setDirection(AutoScrollViewPager.RIGHT);
//设置是否自动循环轮播,默认为true
//注意:一旦设为true,则不能和ViewPagerIndicator一起使用
auto_view_pager.setCycle(true);
//设置切换动画的时长
auto_view_pager.setScrollDurationFactor(10);
//设置当滑动到最后一个或者第一个时,如何切换下一张
/**
* SLIDE_BORDER_MODE_NONE:不能再滑动
* SLIDE_BORDER_MODE_TO_PARENT:移动父视图的Pager
* SLIDE_BORDER_MODE_CYCLE:循环
* 默认为SLIDE_BORDER_MODE_NONE
*/
auto_view_pager.setSlideBorderMode(AutoScrollViewPager.SLIDE_BORDER_MODE_CYCLE);
//当滑动到最后一张或第一张时是否开启动画,默认为true
auto_view_pager.setBorderAnimation(false);
//当触摸的时候,停止轮播
auto_view_pager.setStopScrollWhenTouch(true);


7.开启/停止轮播

@Override
protected void onResume() {
super.onResume();
//开启自动轮播,延时时间为getInterval()
auto_view_pager.startAutoScroll();
//开启自动轮播,并设置延时
//auto_view_pager.startAutoScroll(delayTime);
}

@Override
protected void onPause() {
super.onPause();
//停止轮播
auto_view_pager.stopAutoScroll();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: