实现效果:当banner滚动的时候 首先会缩放当前以及上一个或下一个banner图,当banner滚动时会,背景会随滚动系数变化缩放(自动滚动),下面相关技术人员来分享一下源码:
//0无状态,1缩放,2放大,3不能再播放动画
private int status = 0;
private void fada() {
if (status == 0 || status == 1) {
AnimatorSet animatorSetsuofang = new AnimatorSet();//组合动画
ObjectAnimator scaleX = ObjectAnimator.ofFloat(viewPager, "scaleX", 0.9f, 1f);
ObjectAnimator scaleY = ObjectAnimator.ofFloat(viewPager, "scaleY", 0.9f, 1f);
animatorSetsuofang.setDuration(500);
animatorSetsuofang.setInterpolator(new LinearInterpolator());
animatorSetsuofang.play(scaleX).with(scaleY);//两个动画同时开始
animatorSetsuofang.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
super.onAnimationStart(animation);
setViewPagerIsScroll(false);
stopAutoPlay();
status = 3;
}
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
setViewPagerIsScroll(true);
Log.e("as", "sa");
startAutoPlay();
status = 2;
}
});
animatorSetsuofang.start();
}
}
private void suoxia() {
if (status == 0 || status == 2) {
AnimatorSet animatorSetsuofang = new AnimatorSet();//组合动画
ObjectAnimator scaleX = ObjectAnimator.ofFloat(viewPager, "scaleX", 1f, 0.9f);
ObjectAnimator scaleY = ObjectAnimator.ofFloat(viewPager, "scaleY", 1f, 0.9f);
animatorSetsuofang.setDuration(200);
animatorSetsuofang.setInterpolator(new LinearInterpolator());
anim