控件 -- ViewFlipper

一、概念

ViewFlipper是用于实现轮播的控件。

二、常用方法

setInAnimation:设置View进入屏幕时候使用的动画。
setOutAnimation:设置View退出屏幕时候使用的动画。
showPrevious:显示ViewFlipper里面的上一个View。
showNext :显示ViewFlipper里面的下一个View。
setFlipInterval:设置View之间切换的时间间隔。
startFlipping:使用setFlipInterval方法设置的时间间隔来开始切换所有的View,切换会循环进行。
stopFlipping:停止View切换。
isFlipping:用来判断View切换是否正在进行。
setDisplayedChild:切换到指定子View。

三、使用

private void setViewFlipper() {
    mViewFlipper = (ViewFlipper) findViewById(R.id.flipper);

    //添加要滚动的View
    mViewFlipper.addView(getImageView(R.drawable.abcde_a));
    mViewFlipper.addView(getImageView(R.drawable.abcde_b));
    mViewFlipper.addView(getImageView(R.drawable.abcde_c));

    //设置开始和结束动画
    mViewFlipper.setInAnimation(this, R.anim.push_up_in);
    mViewFlipper.setOutAnimation(this, R.anim.push_up_out);

    //设置间隔时间
    mViewFlipper.setFlipInterval(3000);

    //动画的监听
    mViewFlipper.getInAnimation().setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {
            //动画开始时
        }

        @Override
        public void onAnimationEnd(Animation animation) {
            //动画结束时
        }

        @Override
        public void onAnimationRepeat(Animation animation) {
            //重复
        }
    });

    //开始轮播
    mViewFlipper.startFlipping();
}

private ImageView getImageView(int res) {
    ImageView imageView = new ImageView(this);
    imageView.setBackgroundResource(res);
    return imageView;
}

你可能感兴趣的:(控件 -- ViewFlipper)