android学习ViewFlipper的使用

  android系统自带的多页面管理控件,它可以实现子页面的自动切换

  1,为ViewFlipper添加View

  静态导入:在layout布局文件中直接导入

  动态导入:通过addview方法进行导入

  2,viewflipper常用方法

  setInAnimation 设置view进入屏幕时使用的动画

  setOutAnimation 设置view退出屏幕时使用的动画

  showNext 调用该函数显示viewflipper中的下一个view

  showprevious 调用该函数显示viewflipper中的上一个view

  setFlipInterval 设置view之间切换的时间间隔

  startFlipping 使用上面设置的时间间隔来开始切换所有的view,切换回循环进行

  stopFlipping 停止自动切换

  demo是一个图片的自动切换

  第一步:添加几张图片到drawable目录下,a.png,b.png,c.png,d.png;

  第二步:在MainActivity中定义资源id数组 

  private int []resId={R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d}

    第三步:定义一个获取imageView的接口

public ImageView getImageView(int resId){
        ImageView imageView = new ImageView(this);
        imageView.setBackgroundResource(resId);//铺满整个屏幕
        return imageView;
    }

  第四步:为ViewFlipper添加view

  

 viewFlipper = (ViewFlipper)findViewById(R.id.viewFlipper);
        for(int i = 0;i<resId.length;i++){
            viewFlipper.addView(getImageView(resId[i]));
        }

  第五步:设置ViewFlipper切换属性

  

viewFlipper.setFlipInterval(1000);
viewFlipper.startFlipping();

  第六步:添加手指滑动事件

  @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch(event.getAction()){
            case MotionEvent.ACTION_DOWN:
            {
                startX = event.getX();
                break;
            }
            case MotionEvent.ACTION_MOVE:{
                if(startX-event.getX()>100){
                    viewFlipper.showNext();
                }
                else{
                    viewFlipper.showPrevious();
                }
                break;
            }
            case MotionEvent.ACTION_UP:{
            }
        }
        return super.onTouchEvent(event);
    }
原文地址:https://www.cnblogs.com/techdreaming/p/4979010.html