2017-07-30 58 views
0

我在我的应用程序的登录屏幕中使用KenBurnsView在后台显示多个图像。事情是这个图像变得太突然了。在改变从一个图像到另一个图像的转换时,是不是实现淡入淡出效果的一种方式,在视图API中的某处挂钩?平滑地更改转换中的图像

这是我用来实现转换的代码。

private void setupAnimationBackground() { 
    mBackgroundImageView.setTransitionListener(new KenBurnsView.TransitionListener() { 
     @DrawableRes int[] mResources = new int[]{ 
       R.drawable.splash1, R.drawable.splash2, R.drawable.splash3, 
       R.drawable.splash4, R.drawable.splash5, R.drawable.splash6 
     }; 

     int mIndex = 0; 

     @Override 
     public void onTransitionStart(Transition transition) { 
      mIndex = (mIndex == mResources.length - 1) ? 0 : mIndex + 1; 
     } 

     @Override 
     public void onTransitionEnd(Transition transition) { 
      mBackgroundImageView.setImageDrawable(ContextCompat.getDrawable(getContext(), mResources[mIndex])); 
     } 
    }); 
} 

mBackgroundImageView是一个KenBurnsView。我在我的可绘制文件夹中有图像资源。正如你所看到的,我将这些引用存储在资源int数组中。

回答

0

对不起,不。您需要将两个KenBurnsView重叠在另一个之上,然后您自己处理交叉淡化。