ViewFlipper实现手势滑动

来源:互联网 发布:教师资格考试 知乎 编辑:程序博客网 时间:2024/05/29 08:34

  利用ViewFlipper可以实现图片的轮播,支持手势滑动的图片切换

  在ViewFlipper中加入图片

  1、静态导入

 

  2、动态导入:addView()方法


  ViewFlipper常用方法:

实现代码

package com.example.mhy.demo;import android.app.Activity;import android.os.Bundle;import android.view.MotionEvent;import android.widget.ImageView;import android.widget.ViewFlipper;public class MainActivity extends Activity {    private ViewFlipper viewFlipper;    private float startX;    private int[]resId={R.drawable.p1,R.drawable.p2,            R.drawable.p4,R.drawable.p5,R.drawable.p6};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        viewFlipper = (ViewFlipper)findViewById(R.id.viewFliper);        for(int i=0;i<5;i++){            viewFlipper.addView(getImageView(resId[i]));        }        //自动播放        //切换的时间间隔//        viewFlipper.setFlipInterval(3000);//        //切换时图片进入显示区时的动画//        viewFlipper.setInAnimation(this, R.anim.left_in);//        //切换时图片离开显示区的动画//        viewFlipper.setOutAnimation(this, R.anim.left_out);//        //开始播放//        viewFlipper.startFlipping();    }    private ImageView getImageView(int id) {        ImageView image = new ImageView(this);        image.setBackgroundResource(id);        return image;    }    //监听手势滑动    @Override    public boolean onTouchEvent(MotionEvent event) {        // TODO Auto-generated method stub        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)                {                    viewFlipper.setInAnimation(this, R.anim.left_in);                    viewFlipper.setOutAnimation(this, R.anim.left_out);                    viewFlipper.showNext();                }                //向左滑动                if(startX-event.getX()>100)                {                    viewFlipper.setInAnimation(this, R.anim.right_in);                    viewFlipper.setOutAnimation(this, R.anim.right_out);                    viewFlipper.showPrevious();                }                break;        }        return super.onTouchEvent(event);    }}


学习视频:http://www.imooc.com/video/2657

 

0 0