[英]Android ObjectAnimator background Colour and text
我目前有一个列表视图,我想让动画根据网络的状态更改颜色。 到目前为止,这是行得通的,但看起来并不太流畅,有没有办法让它从透明变为正常的颜色,但之间不会出现长时间的褪色。
到目前为止,这是我的代码。
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();
您看到此效果的原因:
它将黑色变成透明,而不是从颜色变成透明。
是因为Color.Transparent实际上是带有0的黑色。如果要去除黑色,则需要复制目标颜色并将其alpha设置为0,然后使用该颜色代替Color.Transparent。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.