动画ImageView可绘制的颜色更改

时间:2015-03-27 16:34:25

标签: android android-animation android-imageview

我试图用动画改变可绘制形状的颜色。 drawable以ImageView显示,颜色通常使用setColorFilter()设置。

我尝试过使用TransitionDrawable和ObjectAnimator,但无论我怎么做都没事。

有没有人知道如何做到这一点,或者如果我做错了什么?

这是我试图改变颜色的形状:

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">

    <solid
        android:color="@color/circle"/>

    <size
        android:width="70dp"
        android:height="70dp"/>
</shape>

使用TransistionDrawable上次尝试的代码:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    out = new TransitionDrawable(new Drawable[]{getResources().getDrawable(R.drawable.white_circle, getTheme()), getResources().getDrawable(R.drawable.circle, getTheme())});
} else {
    out = new TransitionDrawable(new Drawable[]{getResources().getDrawable(R.drawable.white_circle), getResources().getDrawable(R.drawable.circle)});
}
out.setCrossFadeEnabled(true);
out.startTransition(1000);

其中white_circle与圆形完全相同但是为白色

1 个答案:

答案 0 :(得分:1)

不幸的是我找不到用动画改变Android形状颜色的方法,我使用了另一种解决方案。

我创建了两次对象,显示在完全相同的位置,一个带有startcolor,一个带有endcolor。当需要转换时,我只是淡出旧图像并淡入新图像。

如果有人在没有使用第二个对象的情况下仍然找到一种动画方法,请随时回答这个问题。