ViewFlipper自动滑动播放

// 声明ViewFlipper
  ViewFlipper viewflipper;
//初始化 
  viewflipper= (ViewFlipper) view.findViewById(R.id.viewflipper);
        for (int i = 0; i <7; i++) {
            ImageView iv=new ImageView(getContext());
            iv.setImageResource(R.mipmap.c1+i);
 //设置画面显示尺寸,
            iv.setScaleType(ImageView.ScaleType.FIT_XY);
            viewflipper.addView(iv,new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
        }
        //是否自动播放
        viewflipper.setAutoStart(true);
        //图片间隔时间
        viewflipper.setFlipInterval(1500);
 //进入动画效果       
viewflipper.setInAnimation(getContext(),R.anim.push_left_in);
//淡出动画效果     
viewflipper.setOutAnimation(getContext(),R.anim.push_left_out);
        if (viewflipper.isAutoStart()&&!viewflipper.isFlipping()){
            viewflipper.startFlipping();
        }

示例分析

一、自动播放

ViewFlipper控件,是ImageView的容器,用于添加显示的图片资源,主要功能有两个:添加显示View和自动播放View

通过实现父类android.view.ViewGroup的addView(View child, ViewGroup.LayoutParams params)添加View资源,即图片和填充样式

启动自动播放View,可以通过设置如下三个成员函数实现:

1、 setAutoStart(true),设置是否自动播放功能,true为自动播放,false为不自动播放,开启自动播放设为true

2、 setFlipInterval(int milliseconds),设置View播放的时间间隔,如3000(3秒)

3、 startFlipping(),开始自动播放

停止自动播放View,设置成员函数如下:

1、 stopFlipping(),停止自动播放

2、 setAutoStart(false),停止自动播放,设为false

1、 当手势从左向右滑动时,图片是左进右出

if (e2.getX() - e1.getX() > 120) ,即up终点(e2)与down起点(e1)的滑动距离大于120,来检测从左向右滑动事件

push_left_in.xml —— 左进 渐变效果

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

    <alpha
        android:duration="1500"
        android:fromAlpha="0.1"
        android:toAlpha="1.0" />
</set>




push_left_out.xml  —— 右出渐变效果





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

    <alpha
        android:duration="1500"
        android:fromAlpha="1.0"
        android:toAlpha="0.1" />
</set>





2、 当手势从右向左滑动时,图片是右进左出

if (e2.getX() - e1.getX() < -120) ,即up终点(e2)与down起点(e1)的滑动距离小于-120,来检测从右向左滑动事件

push_right_in.xml —— 右进渐变效果

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

    <alpha
        android:duration="1500"
        android:fromAlpha="0.1"
        android:toAlpha="1.0" />
</set>




push_right_out.xml  —— 右出渐变效果





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

    <alpha
        android:duration="1500"
        android:fromAlpha="1.0"
        android:toAlpha="0.1" />
</set>







其中,android:duration表示渐变持续时 间;translate表示位移变换;alpha表示透明度变换

translate

android:fromXDelta="-100%p"   android:toXDelta="0" 表示图片从左进入,从不可见到可见

android:fromXDelta="0" android:toXDelta="100%p"    表示图片从右滑出,从可见到不可见



alpha

android:fromAlpha="1.0"  android:toAlpha="0.1" 表示图片从不透明 (1.0)到透明(0.1)

android:fromAlpha="0.1"  android:toAlpha="1.0" 表示图片从透明 (0.1)到不透明(1.0) 
展开阅读全文

没有更多推荐了,返回首页