ViewFlipper 视图容器

来源:互联网 发布:电视剧硅谷中的算法 编辑:程序博客网 时间:2024/06/08 18:16

大家好,好久不见,这段时间一直忙来着,也没上来进行更新,但是我还在想,我应该给大家更新点什么呢?东西太多了,想更新的东西,我怕有些东西我描述的不清楚,给大家造成干扰,纠结了一段时间后,但是我还是坚定了自己的信念,接着写,欢迎大家指正里面的错误!
今天讲的呢是ViewFlipper 这个容器
想必大家都用过PPT里面的幻灯片切换,每个图片的在规定时间内定的切换动作,今天实现的这个就类似幻灯片的切换吧;
这个控件的简单介绍,大家百度下就知道了,老规矩,干货上来,一眼就知道:
首先是布局文件:activity_flipper.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <ViewFlipper        android:id="@+id/vf"        android:layout_width="match_parent"        android:layout_height="match_parent" /></LinearLayout>

是不是看布局就感觉到很简单呢,在来看看具体的实现部分吧
FlipperActivity.java

public class FlipperActivity extends Activity implements GestureDetector.OnGestureListener {    //声明ViewFlipper    private ViewFlipper mViewFlipper;    //声明GestureDetector 手势    private GestureDetector mGestureDetector;    //声明所需的图片    private ImageView mimageView1;    private ImageView mimageView2;    private ImageView mimageView3;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.activity_flipper);        //创建ViewFlipper 的子视图        mimageView1 = new ImageView(this);        mimageView2 = new ImageView(this);        mimageView3 = new ImageView(this);        //为ImageView 添加资源图片        mimageView1.setImageResource(R.drawable.image1);        mimageView2.setImageResource(R.drawable.image2);        mimageView3.setImageResource(R.drawable.image3);        //创件手势实例对象        mGestureDetector = new GestureDetector(this);        //初始化ViewFlipper        mViewFlipper = (ViewFlipper) findViewById(R.id.vf);        //创建透明动画        AlphaAnimation alphaAnimation = new AlphaAnimation(0.3f, 1.0f);        //创建动画持续时间        alphaAnimation.setDuration(1500);        //给ViewFlipper 添加动画        mViewFlipper.setAnimation(alphaAnimation);        //为ViewFilpper 添加子视图        mViewFlipper.addView(mimageView1, 0);        mViewFlipper.addView(mimageView2, 1);        mViewFlipper.addView(mimageView3, 2);        //长按屏幕,切换子视图效果        if (mGestureDetector.isLongpressEnabled()) {            //设置子视图却换的时间间隔            mViewFlipper.setFlipInterval(5500);            //开始切换ViewFlipper 中的子视图            mViewFlipper.startFlipping();        }    }    //设置如何使用手指切换ViewFlipper 中的子视图    @Override    public boolean onFling(MotionEvent e1,                           MotionEvent e2,                           float velocityX,                           float velocityY) {        /**         * 当手指在x轴向右滑动的距离超过150dp的时候,展示ViewFlipper的下一个视图         */        if ((e1.getX() - e2.getX()) > 150) {            this.mViewFlipper.setInAnimation(AnimationUtils                    .loadAnimation(this, android.R.anim.fade_in));            this.mViewFlipper.setOutAnimation(AnimationUtils                    .loadAnimation(this, android.R.anim.fade_out));            this.mViewFlipper.showNext();            return true;        } else if ((e1.getX() - e2.getX()) < -150) {            this.mViewFlipper.setInAnimation(AnimationUtils                    .loadAnimation(this, android.R.anim.fade_in));            this.mViewFlipper.setOutAnimation(AnimationUtils                    .loadAnimation(this, android.R.anim.fade_out));            this.mViewFlipper.showPrevious();            return true;        }        return false;    }    @Override    public boolean onDown(MotionEvent e) {        return false;    }    @Override    public void onShowPress(MotionEvent e) {    }    @Override    public boolean onSingleTapUp(MotionEvent e) {        return false;    }    @Override    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {        return false;    }    @Override    public void onLongPress(MotionEvent e) {    }}

行了,这两段代码添加进去就可以了,自己找三张图添加进去就OK了。

这就是今天想要分享的内容,大家有什么想知道的,我会尽我努力去搞出来,欢迎大家提出你们的建议~

0 0