Я пытаюсь анимировать чередующиеся цвета фона для TextView, изменяя фоновые рисунки с помощью класса TransitionDrawable. Вот результат, который я получаю:
Проблема заключается в том, что второй чертеж меньше первого , и в результате зеленый фон всегда виден по сторонам. Мне нужен синий фон, чтобы полностью покрыть зеленый. Я просто не могу понять, почему это так.
некоторый файл макета:
<TextView
android:id="@+id/alertCrumb"
style="@style/Custom.TextAppearance.AppCompat.Caption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/crumb_animated"
android:textColor="@android:color/white"/>
crumb_animated.xml
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<solid android:color="@android:color/holo_green_light" >
</solid>
<padding
android:bottom="1dp"
android:left="4dp"
android:right="4dp"
android:top="1dp" >
</padding>
<corners android:radius="2dp" >
</corners>
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="@android:color/holo_blue_dark" >
</solid>
<padding
android:bottom="1dp"
android:left="4dp"
android:right="4dp"
android:top="1dp" >
</padding>
<corners android:radius="2dp" >
</corners>
</shape>
</item>
</transition>
вызов в java:
final TransitionDrawable background = (TransitionDrawable) alertCrumb.getBackground();
background.startTransition(500);
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
background.reverseTransition(1000);
handler.postDelayed(this, 1000);
}
}, 2000);