Я хочу создать кнопку в Android с текстом и фоновым изображением. Фоновое изображение должно пересекаться каждые X раз.
У меня это работает, используя TransitionDrawable с двумя изображениями.
Но я не могу заставить это работать с более чем двумя изображениями.
Что у меня:
В коде Java я создаю кнопку и устанавливаю фон (который является TransitionDrawable, определенным в XML). И я начинаю переход.
final Button b = new Button(getApplicationContext());
b.setTextColor(getResources().getColor(R.color.white));
b.setText("Some text");
b.setBackgroundDrawable(getResources().getDrawable(R.drawable.tile));
StateListDrawable background = (StateListDrawable) b.getBackground();
TransitionDrawable td = (TransitionDrawable) background.getCurrent();
td.startTransition(2000);
В XML я определяю в tile.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<solid
android:color="#449def" />
</shape>
</item>
<item android:drawable="@drawable/transition">
<shape>
<solid
android:color="#0000ff" />
</shape>
</item>
</selector>
И, наконец, transition.xml
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
<item android:drawable="@drawable/desert"/>
<item android:drawable="@drawable/hydrangeas" />
<item android:drawable="@drawable/jellyfish" />
</transition>
Теперь эффект заключается в том, что при запуске приложения отображается изображение пустыни. Это изображение пересекает изображение гортензии, как должно. Но изображение медузы никогда не отображается.
В документе для TransitionDrawables указано, что вы можете указать более двух чертежей, но я не могу заставить это работать.
Я также пробовал это без какого-либо XML, но в чистом JAVA, но это дало точно такую же проблему: - (