ViewFlipper实现手势滑动

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

  在ViewFlipper中加入图片

  1、静态导入

  ViewFlipper实现手势滑动_第1张图片

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

ViewFlipper实现手势滑动_第2张图片

  ViewFlipper常用方法:

ViewFlipper实现手势滑动_第3张图片

实现代码

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

 

你可能感兴趣的:(android)