Ich möchte eine Schaltfläche in Android mit einem Text und einem Hintergrundbild erstellen. Das Hintergrundbild sollte jede X-Zeit überblenden.Android TransitionDrawable mit mehreren Elementen
Ich habe dies funktioniert mit einem TransitionDrawable mit 2 Bildern.
Aber ich kann das nicht mit mehr als 2 Bildern arbeiten.
Was ich habe:
In Java Code, den ich einen Button erstellen und einen Hintergrund (das ist ein TransitionDrawable in XML definiert ist). Und ich beginne den Übergang.
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);
In XML definiere ich in 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>
Und schließlich ein 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>
Nun wird der Effekt, dass, wenn ich die App die Wüste Bild beginnen gezeigt . Dieses Bild überblendet das Hortensien Bild wie es sollte. Aber das Quallenbild wird nie gezeigt.
In dem Dokument für TransitionDrawables wird angegeben, dass Sie mehr als 2 Zeichen angeben können, aber ich kann dies nicht zum Funktionieren bringen.
Ich habe auch versucht dies ohne XML aber in rein JAVA aber das gab genau das gleiche Problem :-(
* Im doc für TransitionDrawables mit angegeben wird, dass Sie mehr als 2 Drawables * angeben können - können Sie einen Link, wo dies angegeben ist? – Luksprog
http://developer.android.com/reference/android/graphics/drawable/TransitionDrawable.html#TransitionDrawable (android.graphics.drawable.Drawable []) Dies besagt, dass "mindestens 2 Ebenen für dieses Zeichen erforderlich sind richtig funktionieren. ". Wie in meinem ursprünglichen Beitrag gesagt, habe ich auch alles in reinem Java-Code versucht (also actully mit diesem Konstruktor), aber das hatte genau das gleiche Problem. – Knarf
Eine schlechte Wahl für Wörter. Ich habe mir gerade den Code für "TransitionDrawable" angesehen und er blendet nur zwischen zwei Zeichen, jede zweite Ebene wird ignoriert. – Luksprog