Kæde animationer på Android

Hvis du regelmæssigt læser mine TechRepublic App Builder-indlæg, ved du, at min 13-årige søn og jeg har arbejdet på at kode et spil til Android-enheder. For et par uger siden tilføjede vi nogle seje lydeffekter til jazz-tingene. I den sidste weekend besluttede vi, at nogle nifty animationssekvenser blev opfordret til i spillet.

Jeg har banket rundt på animationsrammen i Android SDK før. I fortiden har jeg altid bare brug for en enkelt overgang, eller i værste fald en enkelt animation, som jeg kunne sløjfe. Denne gang håbede jeg på noget, der var lidt mere fleksibelt. Jeg ville kæde adskillige animationer sammen uden at trække mit hår ud og prøve at få timingen rigtigt. Det viser sig, at de smarte folk på Google forventede nøjagtigt dette scenarie og gav os udviklere tagget, som giver os mulighed for at definere flere animationer i en enkelt XML-fil og derefter behandle dem i kode som en enkelt enhed.

Det korte program, der følger, viser, hvordan du integrerer et animationssæt i din næste app. Følg med i vejledningen, eller træk ned hele projektet her, og importer det direkte til Eclipse.

1. Opret et nyt Android-projekt i Eclipse. Målplatform 1.6 eller højere. Omdøb startaktiviteten til Main.java.

2. Opret en ny mappe kaldet / xml i dit / layout-bibliotek. Opret en ny XML-fil kaldet faded_rectangle.xml. Vi bruger Android's indbyggede formbibliotek til at tegne et simpelt rektangel med en dejlig gradient og afrundede hjørner.

 faded_rectangle.xml 
 "1.0" kodning = "UTF-8" ?> 

"Http://schemas.android.com/apk/res/android"

android: form = "rektangel" >

"# 99CCFF"

android: endColor = "# 003366"

android: vinkel = "270" />

"15dp"

android: bottomLeftRadius = "15dp"

android: topLeftRadius = "15dp"

android: topRightRadius = "15dp" />

3. Vi er nødt til at definere animationerne. For at holde det enkelt vil vi zoome ud, rotere, zoome ind igen og bruge vores tag til at linke overgange. Føj en anden fil (kaldet animation_fx.xml) til din / xml-mappe.

 animation_fx.xml 

"1.0" encoding = "utf-8" ?>

xmlns: android = "http://schemas.android.com/apk/res/android" >

android: fromXScale = "1.0"

android: fromYScale = "1.0"

android: toXScale = ".75"

android: toYScale = ".75"

android: varighed = "1500" />

android: fromDegrees = "0"

android: toDegrees = "360"

android: varighed = "1500"

android: pivotX = "50%"

android: pivotY = "50%" />

android: fromXScale = ".75"

android: fromYScale = ".75"

android: toXScale = "1"

android: toYScale = "1"

android: varighed = "1500" />

4. Vi flytter til mappen / layout og definerer vores aktivitetslayout. Det er et temmelig standard lineært layout, bortset fra at vi har indstillet baggrundsattributten for et af tekstvisningselementerne til at pege på vores falmede rektangelform.

 main.xml 

"1.0" encoding = "utf-8" ?>

"Http://schemas.android.com/apk/res/android"

android: layout_width = "fill_parent"

android: layout_height = "fill_parent"

android: orientering = "lodret" >

android: layout_width = "fill_parent"

android: layout_height = "wrap_content"

android: text = "Animationsdemo"

android: paddingBottom = "100dip" />

android: layout_width = "wrap_content"

android: layout_height = "wrap_content"

android: layout_gravity = "center"

android: klikbar = "sand"

android: id = "@ + id / touch_here"

android: baggrund = "@ xml / faded_rectangle"

android: polstring = "12dip"

android: textStyle = "fed"

android: textColor = "# 000000"

android: text = "Tryk her!" />

5. Det sidste trin er at tilføje on-click-behandleren til Main.java-filen i vores / src-mappe. Vi tilslutter kliket i on on override, og påkalder derefter animationssekvensen i tilbagekaldet.

Main.java- pakke com.authorwjf.anichain; 
 import android.app.Aktivitet; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.TextView; 
 public class Main udvider Aktivitetsimplementeringer OnClickListener { 

/ ** Ringes op, når aktiviteten først oprettes. * /

@Override

public void onCreate (Bundle gemtInstanceState) { super .onCreate (gemtInstanceState);

setContentView (R.layout. main );

TextView tv = (TextView) findViewById (R.id. Touch_here );

tv.setOnClickListener ( dette ); }
 @Override offentligt tomrum onClick (Vis v) { if (v.getId () == R.id. Touch_here ) {Animation a = AnimationUtils. loadAnimation ( dette, R.xml. animation_fx ); 

a.reset ();

TextView tv = (TextView) v;

tv.clearAnimation ();

tv.startAnimation (a);

}

}

}
Du kan køre demoen ( figur A ) på din emulator, selvom animationerne er meget mere imponerende på en faktisk enhed. Figur A

Efter min mening har Android-platformen et antal uslebne kanter, så jeg er altid glad, når jeg ser noget med ægte polish. Animationsættet er et af de emner i SDK, der skiller sig ud. Det fungerer og fungerer godt.

© Copyright 2020 | mobilegn.com