Een snelle en vuile implementatie. Geweldig! Maar hoe voeg ik dit toe aan mijn aanvraag?

Dit jaar verder Google-presentaties I/O werd nieuw gepresenteerd Android-versie - L. Daarnaast zijn er veel nieuwe goodies geïntroduceerd voor gebruikers en ontwikkelaars. Maar een van de belangrijkste innovaties was ongetwijfeld het nieuwe Google-oplossing om het ontwerp te verenigen - Materiaal ontwerp.

Een van de Material Design-patronen is Zwevende actieknop.

Wat is een zwevende actieknop?

Google zegt dat het een ‘op maat gemaakte methode is om actie te stimuleren’. De knop zelf heeft de vorm van een cirkel die boven de interface zweeft.


Het vermelden waard dat de zwevende actieknop alleen de hoofdactie in de applicatie mag weergeven.

Snelle en vuile implementatie

Ik wilde creëren snelle manier het toevoegen van een eenvoudige FAB voor uw Android-applicaties met minSdkVersion = 14 (Ice Roomijsje). Ik heb ook vervagende/verdwijnende animaties en aanpassingsopties voor kleine knoppen geïmplementeerd.

Alle code is beschikbaar in Github Gist (voeg deze klasse toe aan uw project).

Voor de betrouwbaarheid zal ik de code hier dupliceren

pakket jouw_pakket; importeer android.animatie.AnimatorSet; importeer android.animation.ObjectAnimator; importeer android.app.Activiteit; importeer android.content.Context; importeer android.graphics.Bitmap; importeer android.graphics.Canvas; importeer android.graphics.Color; importeer android.graphics.Paint; importeer android.graphics.drawable.BitmapDrawable; importeer android.graphics.drawable.Drawable; importeer android.view.Gravity; importeer android.view.MotionEvent; importeer android.view.View; importeer android.view.ViewGroup; importeer android.view.animation.AccelerateInterpolator; importeer android.view.animation.OvershootInterpolator; importeer android.widget.FrameLayout; openbare klasse FloatingActionButton breidt View uit ( Contextcontext; Verf mButtonVerf;;


int zwaartekracht = Gravity.BOTTOM | Zwaartekracht.RECHTS; // standaard rechtsonder Tekenbaar, tekenbaar; int kleur = Kleur.WIT;.

int-grootte = 0;

vlotterschaal = 0;

public Builder(Activiteitscontext) ( scale = context.getResources().getDisplayMetrics().density; // De berekening (waarde * schaal + 0,5f) wordt veel gebruikt om te converteren naar dps naar pixeleenheden // gebaseerd op dichtheidsschaal // zie developer.android.com (ondersteunt meerdere schermformaten) size = (int) (72 * scale + 0.5f); zwaartekracht; this.activity = context; ) /** * Stelt de zwaartekracht in voor de FAB */ public Builder withGravity(int zwaartekracht) ( this.gravity = zwaartekracht; retourneer dit; ) /** * Stelt de marges in voor de FAB in dp */ public Builder withMargins(int left, int top, int right, int bottom) ( params.setMargins((int) (links * schaal + 0,5f), (int) (boven * schaal + 0,5f), (int ) (rechts * schaal + 0,5f), (int) (onder * schaal + 0,5f)); retourneer dit; /** * Stelt de FAB tekenbaar in */ openbare Builder met Tekenbaar (definitief tekenbaar tekenbaar) ( this. tekenbaar = tekenbaar) ; return this;) /** * Stelt de FAB-kleur in */ public Builder withButtonColor(final int color) ( this.color = kleur;
De knopgrootte kan eenvoudig worden gewijzigd door te bellen .withButtonSize(int-grootte). De standaardwaarde is 72 dp.

Conclusie

Het lijkt erop dat Google dit patroon in veel van zijn apps zal gebruiken. En er is nog steeds geen nieuws over de vraag of Google een zwevende actieknop aan de ondersteuningsbibliotheek zal toevoegen, dus gebruik deze oplossing voorlopig gerust.