使用viewFlipper实现轮播图,超级简单

来源:互联网 发布:建津预算软件 编辑:程序博客网 时间:2024/06/07 00:07

安卓轮播图有两种实现方式,viewPager和viewFlipper,前段时间项目中需要用到,就弄了一下,看别人都用viewPager,但是代码量太大了,然后就放弃了,以前用过viewFlipper,然后觉得这种方式比较简单,虽然动画效果没有viewPager好用,但是整体代码量很少。ok,直接上代码了。

1.

第一步获取ViewFlipper,并给ViewFlipper添加imageView

vf_image = (ViewFlipper) findViewById(R.id.vf_image);

imageList.add(R.drawable.show1);

imageList.add(R.drawable.show2);

imageList.add(R.drawable.show3);

for (int i = 0; i <imageList.size(); i++) {

ImageView imageView =new ImageView(getApplicationContext());

imageView.setBackgroundResource(imageList.get(i));

vf_image.addView(imageView);

}

2.

给ViewFlipper设置自动播放和间隔时间,并启动,此时自动轮播图就已经完成了,是不是很简单,如果要加手滑动,那也不难,请看下面

vf_image.setAutoStart(true);// 设置自动播放功能(点击事件,前自动播放)

vf_image.setFlipInterval(3000);

if (vf_image.isAutoStart() && !vf_image.isFlipping()) {

vf_image.startFlipping();

}

3.只需要给ViewFlipper设置手势监听就ok了,那么就会有人问了,为什么不使用OnGestureListener监听手势,原因很简单,OnGestureListener监听手势是监听整个手机屏幕,滑动屏幕空白出,图片也会切换

vf_image.setOnTouchListener(new OnTouchListener() {

@SuppressLint("NewApi")

@Override

publicboolean onTouch(View v, MotionEvent event) {

//TODO Auto-generated method stub

if (event.getAction() == MotionEvent.ACTION_DOWN) {

//TODO 触摸时按下

x1 = event.getX();

}

if (event.getAction() == MotionEvent.ACTION_UP) {

//TODO 触摸时抬起

x2 = event.getX();

if (x1 -x2 < -300) {

x1 = 0;

x2 = 0;

vf_image.showPrevious();

}else if (x1 -x2 > 300) {

x1 = 0;

x2 = 0;

vf_image.showNext();

}

}

returntrue;

}

});

至此,手势滑动和自动滑动已经完成,只有短短不到50行代码就搞定了,另外,我没有加动画和轮播图那个那个小圆点,有需要的自己加一下吧,内容比较初级,不喜勿喷
0 0
原创粉丝点击