0
我有一个这样定义的ImageView
:Android的图标动画改变颜色
<ImageView
android:id="@+id/iv_check_simple"
android:background="@drawable/ic_check_simple"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
其中ic_check_simple
可绘制的是用彩色#757575
材料图标之一。我假装图标的颜色,在用户按ViewGroup
(其中ImageView
)后,更改为#00ff00
。
我想用下面的代码来实现这一目标:
int colorFrom = R.color.grey_600;
int colorTo = R.color.electric_green;
ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), colorFrom, colorTo);
colorAnimation.setDuration(250); // milliseconds
colorAnimation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animator) {
mActivitySelectorIcon.setColorFilter((int) animator.getAnimatedValue(), PorterDuff.Mode.DST_IN);
}
});
colorAnimation.start();
我相信我已经尝试了所有的PorterDuff模式,但没有成功。
我想这在运行棒棒糖设备的工作和预棒棒堂(minSDK 16)
谢谢。解决了。只需要做到这一点,并改变到'PorterDuff.Mode.SRC_ATOP'来实现我的目标。 – Favolas