2016-04-19 1 views
0

Ich möchte den Hintergrund meiner Android App automatisch nach wenigen Millisekunden ändern. Also zuerst habe ich eine ziehbar Ressourcendatei „colorchange.xml“ mit dem InhaltAutomatisch Hintergrund der App mit einer neuen Farbe in andorid aktualisiert

<animation-list android:oneshot="false" xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@color/color1" android:duration="1" /> 
<item android:drawable="@color/color2" android:duration="2" /> 
<item android:drawable="@color/color3" android:duration="3" /> 
<item android:drawable="@color/color4" android:duration="4" /> 
<item android:drawable="@color/color5" android:duration="5" /> 

Und ich habe dies als Hintergrund in meiner Haupt-XML-Datei Jetzt nur color1 als Hintergrund gesetzt. Animation von Farben wird nicht als Hintergrund angezeigt.

Was ist das Problem und wie kann ich mein Ziel erreichen?

+0

In welchem ​​Teil des Codes Ihre beginnen Animation? –

Antwort

0

überprüfen wann die Animation zu starten. Laut documentation sollten Sie keine Animation unter onCreate() Methode verwenden.

Hinweis: Diese Mitteilung nicht rufen im onCreate (Bundle) Methode Ihrer Aktivität, weil die AnimationDrawable noch nicht vollständig an das Fenster. Wenn Sie die Animation sofort abspielen möchten ohne Interaktion erfordern, dann möchten Sie vielleicht von der onWindowFocusChanged (boolean) -Methode in Ihrer Aktivität anrufen, die aufgerufen wird, wenn Android Ihr Fenster in den Fokus bringt.

EDIT - Ein Beispiel, wie Animation verwenden:

// Load the View that will host the animation and 
// set its background to our AnimationDrawable XML resource. 
LinearLayout linearLayout = (LinearLayout) layout.findViewById(R.id.example_view); 
linearLayout.setBackgroundResource(R.drawable.colorchange); 

// Get the background, which has been compiled to an AnimationDrawable object. 
AnimationDrawable frameAnimation = (AnimationDrawable) linearLayout.getBackground(); 

// Start the animation (looped playback by default). 
frameAnimation.start(); 
+0

ich habe nicht t hat es in einer der Java-Dateien hinzugefügt. Ich habe gerade eine XML-Ressource-Datei (colorchange.xml) erstellt und in der Haupt-XML-Datei habe ich diese colorchange.xml als Hintergrund – Swarnveer

+0

Sie sollten die Animation starten. Sehen Sie sich mein Beispiel an. –

+0

Ich habe einige Schaltflächen in meinem Haupt-XML, wenn ich also ein Bild hinzufüge, dann überlappen sich die Schaltflächen. In diesem Fall wird das Bild nicht als Hintergrund verwendet. – Swarnveer

0

Sie shold Ihre Farben in Wert/Colors.xml Datei definieren und wie Android verwenden: ziehbar = "@ color/MyGreen"

1

Sie Ihre Farben in colors.xml wie folgt definieren:

<color name="yourcolor">#0FFF</color> 

dann können Sie es wie folgt verwenden:

<item android:[email protected]/yourcolor android:duration="5" /> 
+0

Ok ich habe das gleiche gemacht und es läuft. Aber es ändert nicht automatisch die Farbe, was bedeutet, dass colorchange.xml nicht funktioniert Wie kann ich es überwinden? – Swarnveer

+0

Die Antwort, die ich zur Verfügung gestellt habe, wurde entwickelt, um dein erstes Problem zu lösen. Aber um den Hintergrund regelmäßig zu ändern, schlage ich vor, dass Sie einen Blick auf diese Antwort werfen: http://stackoverflow.com/a/8146089/2101822 hoffe, dass es hilft;) –

+0

Ich möchte kein Bild als Hintergrund verwenden, aber die Farben – Swarnveer

Verwandte Themen