我目前有一个列表视图,我希望根据网络状态改变动画颜色。 Sio这是有效的,但它看起来不太流畅,有没有办法让它从透明到正常的颜色,但没有长时间的淡入淡出。
到目前为止,这是我的代码。
List<ObjectAnimator> arrayListObjectAnimators = new List<ObjectAnimator>();
ObjectAnimator bgColor = ObjectAnimator.OfInt(
DoorItemLayoutView,
"backgroundColor",
Color.Transparent,
color,
color,
Color.Transparent);
bgColor.SetEvaluator(new ArgbEvaluator());
ObjectAnimator doorTxtColor = ObjectAnimator.OfInt(
doorName,
"textColor",
Color.White,
textChangeColour,
textChangeColour,
Color.White);
doorTxtColor.SetEvaluator(new ArgbEvaluator());
ObjectAnimator siteTxtColor = ObjectAnimator.OfInt(
doorSiteName,
"textColor",
Color.White,
textChangeColour,
textChangeColour,
Color.White);
siteTxtColor.SetEvaluator(new ArgbEvaluator());
ObjectAnimator doorIconBackground = ObjectAnimator.OfInt(
doorImage.Background,
"background",
Color.Transparent,
Resource.Drawable.door_active_background,
Resource.Drawable.door_active_background,
Color.Transparent);
doorIconBackground.SetEvaluator(new ArgbEvaluator());
arrayListObjectAnimators.Add(bgColor);
arrayListObjectAnimators.Add(doorTxtColor);
arrayListObjectAnimators.Add(siteTxtColor);
arrayListObjectAnimators.Add(doorIconBackground);
var objectAnimators = arrayListObjectAnimators.ToArray();
AnimatorSet animSetXY = new AnimatorSet();
animSetXY.PlayTogether(objectAnimators);
animSetXY.SetDuration(2000);
animSetXY.Start();
答案 0 :(得分:2)
您看到这种效果的原因:
它将黑色变为透明,而不是从颜色变为透明。
是因为Color.Transparent实际上是黑色的,带有alpha 0。 如果你想摆脱黑色你需要复制目标颜色并将其alpha设置为0并使用该颜色而不是Color.Transparent