Как программно анимировано сменить цвет у Shape?

Рейтинг: 2Ответов: 1Опубликовано: 27.02.2015

Есть shape (back.xml):

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:innerRadius="85dp"
    android:shape="ring"
    android:thickness="5dp"
    android:useLevel="false">
    <solid
        android:color="#FF0000">
    </solid>
    <size
        android:height="200dp"
        android:width="200dp">
    </size>
</shape>

Этот shape является фоном у TextView:

<TextView
    android:id="@+id/fullscreen_content"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:keepScreenOn="true"
    android:textColor="#33b5e5"
    android:textStyle="bold"
    android:textSize="50sp"
    android:gravity="center"
    android:text="@string/dummy_content"
    android:layout_gravity="center"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="105dp"
    android:background="@drawable/back" />

В итоге нужно, чтобы цвет этого кольца (shape) вокруг текста (textview) постоянно анимировано (плавно) менялся на случайный (randomcolor - решено).

Нужен такой эффект смены цвета для shape.

Ответы

▲ 2Принят
        ObjectAnimator objectAnimator = ObjectAnimator.ofInt(textView, "backgroundColor", Color.RED, Color.BLUE).setDuration(250);
        objectAnimator.setEvaluator(new ArgbEvaluator());
        objectAnimator.start();

Как-то так. Этот код изменит цвет фона с анимированием.