动画图像视图饱和度



我正在尝试将一些图像视图从彩色动画化为灰度,然后再从灰度恢复到完整。

这工作正常,但它不会动画:

ColorMatrix matrixGrey = new ColorMatrix();
matrixGrey.setSaturation(0);
filterGrey = new ColorMatrixColorFilter(matrixGrey);
ColorMatrix matrixFull = new ColorMatrix();
matrixFull.setSaturation(1);
filterFull = new ColorMatrixColorFilter(matrixFull);
card1.setColorFilter(filterFull);
card2.setColorFilter(filterGrey);

在这篇文章的帮助下:动画图像的饱和度,我尝试了从全彩色到灰度的动画。

ValueAnimator animation = ValueAnimator.ofFloat(1f, 0f);
animation.setDuration(10000);
//   animation.setInterpolator();
animation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
matrix.setSaturation(animation.getAnimatedFraction());
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
v.setColorFilter(filter);
}
});
animation.start();

即使我更改了 ofFloat 值,它仍然从灰度动画变为彩色。我在这里做错了什么? card1、card2 和 v 是 ImageViews。

使用 animation.animatedValue 而不是 animation.animatedFraction

matrix.setSaturation(animation.animatedValue as Float)

相关内容

  • 没有找到相关文章

最新更新