使用ViewFlipper实现屏幕切换动画效果

来源:互联网 发布:mastercam攻丝怎么编程 编辑:程序博客网 时间:2024/05/11 20:58
package com.example.viewflipper;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.MotionEvent;import android.widget.ImageView;import android.widget.RelativeLayout;import android.widget.ViewFlipper;import butterknife.Bind;import butterknife.ButterKnife;public class MainActivity extends AppCompatActivity {    @Bind(R.id.vf)    ViewFlipper vf;    @Bind(R.id.activity_main)    RelativeLayout activityMain;private int[]resId={R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ButterKnife.bind(this);        //showNext 显示下一个View showPrevious显示上一个view        //seInterval设置view之间切换的时间间隔        //startFlipping使用上面设置的时间间隔来开始切换所有的view 切换会循环进行        //stopFlipping 停止view切换        //1 实现图片轮播 2 支持手势滑动        //动态导入的方式为ViewFilpper加入子view        for (int i = 0; i < resId.length; i++) {         vf.addView(getImageView(resId[i]));        }//        aotoPlay();        vf.setFlipInterval(3000);    }    private void aotoPlay() {        vf.setInAnimation(this, R.anim.left_in);        vf.setOutAnimation(this,R.anim.left_out);        vf.setFlipInterval(3000);        vf.startFlipping();    }    private ImageView getImageView(int resId){        ImageView imageView = new ImageView(this);       // imageView.setImageResource(resId);        //充满全屏        imageView.setBackgroundResource(resId);        return imageView;    }    private  float startX;        @Override            public boolean onTouchEvent(MotionEvent event) {                switch (event.getAction()) {                    case MotionEvent.ACTION_DOWN:                        startX=event.getX();                        break;                    case MotionEvent.ACTION_MOVE:                        //右滑 100px                        //看前一页                        if(event.getX()-startX>100){                            vf.setInAnimation(this,R.anim.left_in);                            vf.setOutAnimation(this,R.anim.left_out);                            vf.showPrevious();                        }else if(event.getX()-startX<100){                            //左滑                            vf.setInAnimation(this,R.anim.right_in);                            vf.setOutAnimation(this,R.anim.right_out);                            vf.showNext();                        }                        break;                    case MotionEvent.ACTION_UP:                        vf.startFlipping();                        break;                }                return true;            }}

//布局

 <ViewFlipper     android:id="@+id/vf"     android:layout_width="match_parent"     android:layout_height="match_parent">
//动画

left_in

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <translate        android:duration="2000"        android:fromXDelta="-100%p"        android:toXDelta="0"/>    <alpha        android:fromAlpha="0.5"        android:toAlpha="1"        android:duration="2000"/></set>


left_out

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <translate        android:duration="2000"        android:fromXDelta="0"        android:toXDelta="100%p"/>    <alpha        android:fromAlpha="1"        android:toAlpha="0.5"        android:duration="2000"/></set>


right_in

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <translate        android:duration="2000"        android:fromXDelta="100%p"        android:toXDelta="0"/>    <alpha        android:fromAlpha="0.5"        android:toAlpha="1"        android:duration="2000"/></set>


right_out

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <translate        android:duration="2000"        android:fromXDelta="0"        android:toXDelta="-100%p"/>    <alpha        android:fromAlpha="0.5"        android:toAlpha="1"        android:duration="2000"/></set>


阅读全文
0 0