疯狂输出
问题锁定
问题手机:红米k40,系统是:Android13
动画导致:ValueAnimator,ObjectAnimator 两个类都导致了该输出。然而问题并不是出在这两个动画类上面,是View的值变化导致的该输出,如调用了方法barView.setImageTintList
就会有这个输出。所有动画应该都是要改变view的值的,所以ObjectAnimator.ofFloat
实际上是通过改变view的值来实现的动画。
ValueAnimator barAnimator;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
barView.setImageTintList(new ColorStateList(new int[][]{new int[]{}}, new int[]{color1}));
barAnimator = ValueAnimator.ofArgb(color1, color2, color2, color3, color3, color3, color1);
barAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
barView.setImageTintList(new ColorStateList(new int[][]{new int[]{}}, new int[]{(int) animation.getAnimatedValue()}));// 导致输出 Empty SMPTE 2094-40 data
}
});
} else {
barAnimator = ObjectAnimator.ofFloat(barView, "alpha", 0f, 0f, 0.3f, 1.0f, 0f);// 导致输出 Empty SMPTE 2094-40 data
}
barAnimator.setDuration(5500);
barAnimator.setRepeatCount(ObjectAnimator.INFINITE);
barAnimator.start();
解决方案
不解决:应该是属于手机系统的问题,用红米turbo3测试时,没出现这个问题。