我试图用动画改变可绘制形状的颜色。 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与圆形完全相同但是为白色
答案 0 :(得分:1)
不幸的是我找不到用动画改变Android形状颜色的方法,我使用了另一种解决方案。
我创建了两次对象,显示在完全相同的位置,一个带有startcolor,一个带有endcolor。当需要转换时,我只是淡出旧图像并淡入新图像。
如果有人在没有使用第二个对象的情况下仍然找到一种动画方法,请随时回答这个问题。