Mehr Spaß mit der Eigenschaftsanimationsklasse von Android

Vor ungefähr einer Woche schrieb ich einen Beitrag über die Eigenschaftenanimationsfunktionen, die Android in Release 8 (Honeycomb) des SDK hinzugefügt wurden. Der Beitrag wurde von den Lesern von TechRepublic so gut aufgenommen, dass ich dachte, er würde ein weiteres Tutorial rechtfertigen. Dieses Mal wollte ich eine weniger häufig demonstrierte Fähigkeit der Klasse ansprechen: die Fähigkeit, zwischen zwei Farbwerten zu interpolieren.

Wenn wir dort weitermachen, wo wir das letzte Mal aufgehört haben, sollte die Implementierung ein Kinderspiel sein. Ziel ist es, eine Schaltfläche zu erstellen, die über einen bestimmten Zeitraum zwischen zwei Hintergrundfarben wechselt, um einen "pulsierenden" Effekt zu erzielen. Sie können dem folgenden kurzen Rundgang folgen oder das gesamte Projekt herunterladen und direkt in Eclipse importieren.

1. Erstellen Sie ein neues Android-Projekt in Eclipse. Sie müssen mindestens Version 8 des SDK als Ziel haben. Stellen Sie sicher, dass Sie Ihre Startaktivität in Main.java und das entsprechende Layout in main.xml umbenennen.

2. Im Ordner / res / layout erstellen wir ein einfaches lineares Layout mit einer einzigen Schaltfläche.

 main.xml 
 "http://schemas.android.com/apk/res/android" 
 android: layout_width = "fill_parent" 
 android: layout_height = "fill_parent" 
 android: background = "# 000000" 
 Android: Schwerkraft = "Zentrum" 
 android: layout_gravity = "center" > 
 android: layout_width = "wrap_content" 
 android: layout_height = "wrap_content" 
 android: text = "Dies ist eine pulsierende Taste." 
 android: textStyle = "fett" 
 android: textColor = "# 000000" 
 android: id = "@ + id / button" /> 

3. Ändern Sie nun in der Datei /src/Main.java die Überschreibung beim Erstellen, um einen neuen Werteanimator zu erstellen, und verbinden Sie ihn mit der Hintergrundeigenschaft unserer Schaltfläche. Wiederholungsanzahl, Wiederholungsmodus und Dauer sind allen Eigenschaftsanimationen gemeinsam. Der Schlüssel zu unserem pulsierenden Effekt ist der Evaluator, den wir instanziieren. Sie können die wichtigsten Details des ArgbEvaluator in der offiziellen Dokumentation von Google nachlesen. Das lange und das kurze daran ist, dass dieser raffinierte Interpolator über eine lineare Zeitmessung reibungslos zwischen einem Start- und einem Endfarbwert wechselt.

 Main.java 
 Paket com.authorwjf.pulse; 
 import android.os.Bundle; 
 import android.animation.ArgbEvaluator; 
 import android.animation.ObjectAnimator; 
 import android.animation.ValueAnimator; 
 android.app.Activity importieren ; 
 android.graphics.Color importieren ; 
 öffentliche Klasse Main erweitert Aktivität { 
 @Override 
 public void onCreate (Bundle savedInstanceState) { 
 super .onCreate (savedInstanceState); 
 setContentView (R.layout. main ); 
 int start = Farbe. rgb (0x00, 0x99, 0x00); 
 int end = Farbe. rgb (0x00, 0xff, 0x00); 
 ValueAnimator va = ObjectAnimator. ofInt (findViewById (R.id.- Schaltfläche ), "backgroundColor", start, end); 
 va.setDuration (750); 
 va.setEvaluator ( neuer ArgbEvaluator ()); 
 va.setRepeatCount (ValueAnimator. INFINITE ); 
 va.setRepeatMode (ValueAnimator. REVERSE ); 
 va.start (); 
 }} 
 }} 
Bereit, es zu versuchen? Wenn ja, laden Sie die resultierende APK auf einen Emulator oder ein Gerät. Der Tastenhintergrund wechselt rhythmisch von hellgrün nach dunkelgrün und zurück ( Abbildung A ). Hinweis: Wenn Sie ein tatsächliches Hardwaregerät mit Android 4.1 oder höher haben, empfehle ich, diese Demo zu testen. Die Aktualisierungen des Grafiksubsystems in JellyBean und darüber hinaus machen den pulsierenden Effekt viel flüssiger und dramatischer. Abbildung A.

© Copyright 2021 | mobilegn.com