AdapterViewFlipper实现跑马灯横幅广告滚动效果

先看效果图:

AdapterViewFlipper实现跑马灯横幅广告滚动效果_第1张图片

 

AdapterViewFlipper继承了AdapterViewAnimator,可以通过showPrevious()和showNext()方法控制组件显示上一个、下一个组件,可以设置切换view时候的动画,而且使用起来非常简洁。

XML属性:

android:animateFirstView:设置显示该组件的第一个View时是否使用动画

android:inAnimation:设置组件显示时使用的动画

android:loopViews:设置循环到最后一个组件后是否自动“转头”到第一个组件

android:outAnimation:设置组件隐藏时使用的动画

android:autoStart:设置显示该组件是否是自动播放

android:flipInterval:设置自动播放的时间间隔

以上属性同样也可以通过代码设置,这里就不做一一介绍了。

AdapterViewFlipper可以设置一个Adapter,去操作他的数据集合;还有一点需要注意的是AdapterViewFlipper只支持属性动画-ObjectAnimator,不可以设置别的方式的动画,不然会抛异常,如果你是写在XML里面,需要将文件放在animator下面!

animator xml:




    
    




    
    

这是两个同时移动和渐变的组合动画,objectAnimator设置的组合动画只能同时进行。

注意:2019-06-24更新!如下...

上述通过xml的方式设置组合动画会在android6.0以下的手机出现异常:unknown animator name: propertyvaluesholder

低版本的手机无法识别propertyvaluesholder标签?

所以保险起见就用代码设置动画:

//设置进入动画
PropertyValuesHolder p1 = PropertyValuesHolder.ofFloat("translationY",450,0);
PropertyValuesHolder p2 = PropertyValuesHolder.ofFloat("alpha",0,1);
ObjectAnimator anim_in = ObjectAnimator.ofPropertyValuesHolder(vf_rewardNow,p1,p2).setDuration(1000);
anim_in.setInterpolator(new AccelerateDecelerateInterpolator());
adapterViewFlipper.setInAnimation(anim_in);

//设置退出动画
PropertyValuesHolder p3 = PropertyValuesHolder.ofFloat("translationY",0,-450);
PropertyValuesHolder p4 = PropertyValuesHolder.ofFloat("alpha",1,0);
ObjectAnimator anim_out = ObjectAnimator.ofPropertyValuesHolder(vf_rewardNow,p3,p4).setDuration(1000);
anim_out.setInterpolator(new AccelerateDecelerateInterpolator());
adapterViewFlipper.setOutAnimation(anim_out);

源码我就不更新了,就是发现这个问题更新一下博客。

源码Demo下载

你可能感兴趣的:(AdapterViewFlipper实现跑马灯横幅广告滚动效果)