Я хочу создать кнопку в Android с текстом и фоновым изображением. Фоновое изображение должно пересекать каждые X раз.Android TransitionDrawable с несколькими элементами
У меня есть работа с использованием TransitionDrawable с 2-мя изображениями.
Но я не могу заставить это работать с более чем двумя изображениями.
Что у меня есть:
В 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>
Теперь эффект, что, когда я запустить приложение пустыни изображение отображается , Это изображение пересекает изображение гортензии, как должно. Но изображение медузы никогда не отображается.
В документе doc for TransitionDrawables указано, что вы можете указать более двух чертежей, но я не могу заставить это работать.
Я также попытался это без какого-либо XML, но в чистом JAVA, но это дало точно такую же проблему :-(
* В док для TransitionDrawables указано, что вы можете указать более 2 * вводимого коэффициента - вы можете предоставить ссылку на где это сказано? – Luksprog
http://developer.android.com/reference/android/graphics/drawable/TransitionDrawable.html#TransitionDrawable (android.graphics.drawable.Drawable []) Это означает, что для этого можно использовать как минимум 2 слоя работать должным образом.". Как сказано в моем оригинальном посте, я также пробовал все в чистом Java-коде (таким образом, используя этот конструктор), но это имело точно такую же проблему. – Knarf
Плохой выбор слов. Я просто посмотрел на код для «TransitionDrawable», и он только исчезает между двумя чертежами, каждый другой слой игнорируется. – Luksprog