android viewflipper图片轮播,使用ViewFlipper实现图片轮播

这篇博客介绍了如何在Android MainActivity中使用ViewFlipper实现背景图片的动态切换,通过手指滑动控制翻页动画,同时演示了如何设置进入和退出动画效果。通过getimageview方法动态加载图片,并根据用户手势左右滑动来切换ViewFlipper的内容。
摘要由CSDN通过智能技术生成

6ba5f23178016b4c1c71405df640cac9.png

public class MainActivity extends AppCompatActivity {

private ViewFlipper flipper;

//背景图片int[] id

private int[] resID = {R.drawable.pic1,R.drawable.pic2,R.drawable.pic3,R.drawable.pic4};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

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

//动态导入的方式为ViewFlipper加入子View

for(int i = 0; i < resID.length ; i++){

flipper.addView(getimageview(resID[i]));

}

//为ViewFlipper去添加动画效果

flipper.setInAnimation(this,R.anim.right_in);

flipper.setOutAnimation(this,R.anim.right_out);

//切换间隔时间

flipper.setFlipInterval(3000);

//开始播放

flipper.startFlipping();

}

private ImageView getimageview(int resID){

ImageView image = new ImageView(this);

image.setBackgroundResource(resID);

return image;

}

bdde0e8bb2df2ffbb42b3e8755f2fd0e.png

手指滑动

public class MainActivity extends AppCompatActivity {

private ViewFlipper flipper;

//X横坐标

private float startX;

//背景图片int[] id

private int[] resID = {R.drawable.pic1,R.drawable.pic2,R.drawable.pic3,R.drawable.pic4};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

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

//动态导入的方式为ViewFlipper加入子View

for(int i = 0; i < resID.length ; i++){

flipper.addView(getimageview(resID[i]));

}

}

private ImageView getimageview(int resID){

ImageView image = new ImageView(this);

image.setBackgroundResource(resID);

return image;

}

//手指滑动

@Override

public boolean onTouchEvent(MotionEvent event) {

switch (event.getAction()){

case MotionEvent.ACTION_DOWN:{

startX = event.getX();

break;

}

case MotionEvent.ACTION_MOVE:{

//向右滑动

break;

}

case MotionEvent.ACTION_UP:{

if(event.getX() - startX > 100){

flipper.setInAnimation(this,R.anim.left_in);

flipper.setOutAnimation(this, R.anim.left_out);

flipper.showPrevious(); //显示前一项

}

//向左滑动

if(startX - event.getX() > 100){

flipper.setInAnimation(this,R.anim.right_in);

flipper.setOutAnimation(this,R.anim.right_out);

flipper.showNext();

}

break;

}

}

return super.onTouchEvent(event);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值