In deze reeks tips hebben we enkele van de nieuwe Android-functies en -hulpmiddelen besproken die dit jaar op Google I / O zijn aangekondigd.
In deze post gaan we ons richten op Android Wear.
Google levert al een tijdje Android Wear UI-componenten via een speciale Wearable Support Library, maar dit gaat allemaal veranderen!
Op de bijeenkomst van dit jaar kondigde Google aan dat de verschillende componenten waaruit de Wearable Support Library bestaat, verouderd, samengevoegd of gemigreerd worden naar de Android Support Library. In dit artikel bekijken we welke componenten worden samengevoegd, verplaatst en verwijderd en hoe u de nieuwe Wear-module van de Android-ondersteuningsbibliotheek kunt gaan gebruiken vandaag.
We zullen ook enkele nieuwe hulpprogramma's bekijken die zijn ontworpen om het gemakkelijker te maken om te werken met de Complications-API van Android Wear.
Op de Google I / O van dit jaar kondigde het Android Wear-team aan dat het grootste deel van de Wearable Support Library naar de Android Support Library gaat. De Wear-specifieke componenten zullen de basis vormen voor een nieuwe support-wear-module, vergelijkbaar met andere modules in de Android Support Library, zoals support-recylerview
en support-ontwerp
.
Volgens de Android Wear-sessies bij Google I / O, kunnen we verwachten dat deze nieuwe Wear-module de bètatest verlaat op hetzelfde moment dat Android O officieel wordt gelanceerd.
Echter niet allemaal componenten van de Wearable Support Library zullen de overstap maken naar de Android Support Library. Google heeft ook aangekondigd dat sommige componenten van de Wearable Support Library:
samengevoegd. Onderdelen die van toepassing zijn op zowel draagbare als draagbare apparaten worden samengevoegd in het Android-framework of meer generieke ondersteuningsmodules. Componenten die moeten worden samengevoegd omvatten CircledImageView
, DelayedConfirmationView
, en ActionButton
.
Verouderd. Google verwerpt de Android Wear UI-componenten die horen bij ontwerppatronen die niet populair zijn gebleken bij Android Wear-gebruikers. Google verwijdert met name het tweedimensionale ruimtelijke model waarmee Android Wear-gebruikers horizontaal en verticaal kunnen bewegen en vervangt het door een verticaal LinearLayout
. Alle klassen die aan het tweedimensionale ruimtelijke model zijn gekoppeld, worden gedeprecieerd GridViewPager
, actieknoppen en actielay-outs.
Hoewel deze migratie een continu proces is, heeft Google al sommige Android Wear-componenten geïntegreerd in versie 26.0.0 Beta1 van de Android Support Library.
BoxInsetLayout
: Dit is een schermbewustzijn FrameLayout
die u kan helpen bij het ontwerpen van één lay-out die werkt voor zowel vierkante als ronde wijzerplaten. Wanneer uw lay-out wordt weergegeven op een rond scherm, BoxInsetLayout
zal al zijn kinderen in een denkbeeldig vierkant in het midden van het ronde scherm plaatsen. U kunt opgeven hoe uw UI-elementen in dit middenveld worden geplaatst, met behulp van de layout_box
attribuut. Wanneer uw app op een vierkant scherm wordt weergegeven, negeert Android de layout_box
attribuut en maakt gebruik van een venster inzet van nul, zodat uw weergaven worden gepositioneerd alsof ze in een reguliere FrameLayout
.
SwipeDismissFrameLayout
: Dit is een lay-out die u kunt gebruiken om aangepaste interacties voor uw te implementeren Uitzicht
s en fragmenten. Over het algemeen gebruik je SwipeDismissFrameLayout
om gebruikers in staat te stellen om views en fragmenten te verwijderen door op het scherm te vegen, in wezen de functionaliteit van de Terug knop gevonden op Android-smartphones en tablets.
WearableRecyclerView
: Dit is een wearable-specifieke implementatie van RecyclerView
waarmee u effectievere lay-outs voor ronde displays kunt ontwerpen. De WearableRecyclerView
maakt effectiever gebruik van de kromming van een rond scherm en wordt meestal gebruikt voor het implementeren van gebogen lijsten. WearableRecyclerView
geeft je ook de mogelijkheid om cirkelvormige schuifbewegingen te gebruiken in je app, via zijn setCircularScrollingGestureEnabled ()
methode.
Als u de nieuwe Android Wear-module wilt gaan gebruiken, moet Android-ondersteuningsbibliotheek 26.0.0 Beta1 zijn geïnstalleerd. Dit brengt ons naar een andere Google I / O-aankondiging.
Op het evenement van dit jaar kondigde Google aan dat het alle komende versies van de Android Support Library (26.0.0 Beta1 en hoger) zou verspreiden via de Google Maven-repository enkel en alleen.
Het downloaden van de Android-ondersteuningsbibliotheek uit deze repository vereist eenvoudigweg dat u de Google Maven Repository aan uw toevoegt build.gradle het dossier:
repositories maven url 'https://maven.google.com' jcenter ()
U kunt vervolgens uw compilatieverschillen instellen zoals gebruikelijk, dus open uw draagbare modules build.gradle bestand en voeg de Wear-bibliotheek toe als een projectafhankelijkheid:
afhankelijkheden compile fileTree (dir: 'libs', include: ['* .jar']) // Voeg het volgende toe // compile 'com.android.support:wear:26.0.0-beta1'
Als u een component uit de Android Wear UI-bibliotheek aan uw gebruikersinterface wilt toevoegen, opent u eenvoudig het lay-outresourcebestand en zorgt u ervoor dat u de nieuwe, volledig gekwalificeerde pakketnaam gebruikt. Dit betekent in wezen vervanging android.support.wearable.view
met android.support.wear.widget
. Hier gebruik ik bijvoorbeeld de BoxInsetLayout
klasse van de Android-ondersteuningsbibliotheek:
Om deze klasse in uw Java-bestand te importeren, hoeft u alleen dezelfde naam te gebruiken, dus de oude:
importeer android.support.wearable.view.BoxInsetLayout;
Wordt het nieuwe:
importeer android.support.wear.widget.BoxInsetLayout;
Android Wear-gebruikers kunnen kiezen uit een grote verscheidenheid aan stijlen van wijzerplaten, en hoewel de Complications API de kijkvlakken volledige controle geeft over hoe zij deze gegevens tekenen, kan deze flexibiliteit het moeilijk maken om complicaties te ondersteunen op uw wijzerplaten.
Op de Google I / O van dit jaar heeft het Android Wear-team enkele toevoegingen geïntroduceerd die het gemakkelijker moeten maken om met de Complication API te werken..
ComplicationDrawable
is een nieuwe oplossing die belooft om alle styling en lay-out van uw complicaties voor u aan te pakken.
Als u een maakt ComplicationDrawable
maar stel geen stijlparameters in, dan krijg je een standaardlook, maar je kunt ook de ComplicationDrawable
om elk onderdeel van je complicatie te stylen, inclusief de achtergrondkleur, hoekradius en rand.
Als uw project API 24 of hoger target, kunt u een ComplicationDrawable
object door een speciaal lay-outresourcebestand te maken in uw project / Res / betekenbare map.
Open uw XML-bestand en maak vervolgens een ComplicationDrawable
met behulp van de volgende tags:
Houd er rekening mee dat attributen die op het hoogste niveau zijn gedefinieerd, van toepassing zijn op zowel de standaardmodus als de omgevingsmodus, tenzij u deze kenmerken in het bestand specifiek opheft.
sectie.
Vervolgens moet u de complicatiegegevens doorgeven aan uw drawable:
@Override public void onComplicationDataUpdate (int id, ComplicationData-gegevens) myComplicationDrawable.setComplicationData (data);
En ten slotte, trek je complicatie aan door te bellen setBounds
op je drawable:
@Override public void onDraw (Canvas canvas, Rect bounds) if (haveChanged (bounds)) myComplicationDrawable.setBounds (complicationBoundsWithin (bounds)); // Roep op de ComplicationDrawable // myComplicationDrawable.draw (canvas, currentTimeMillis); ...
De meeste complicaties omvatten een of andere vorm van tekst, en TextRenderer
is een nieuwe klasse die een aantal kleine maar krachtige aanpassingen doet aan de manier waarop complicatietekst op het canvas wordt getekend.
Je kunt gebruiken TextRenderer
om de grenzen te specificeren waar uw complicatietekst mee moet werken, en TextRenderer
zal dan de grootte van de tekst aanpassen of hem over meerdere regels schikken, om in dit gebied te passen. Wanneer het scherm de "altijd aan" -omgevingsmodus van Android Wear activeert, TextRenderer
past uw tekst aan door tekens en opmaak te verbergen die niet geschikt zijn voor deze modus.
Om van deze nieuwe klasse te profiteren, moet je een TextRenderer
wanneer u uw wijzerplaat initialiseert en deze vervolgens doorgeeft TextPaint
die je wilt gebruiken, die stijlattributen definieert zoals het lettertype en de tekstkleur:
@Override public void onCreate (SurfaceHolder-houder) ... myTextRenderer = new TextRenderer (); myTextRenderer.setPaint (myTextPaint (TextPaint);
U moet een maken TextRenderer
voor elk veld, dus u moet ook een maken TextRenderer
voor uw titeltekst:
myTitleRenderer = new TextRenderer (); myTitleRenderer.setPaint (myTitlePaint); ...
Wanneer het tijd is om te tekenen, moet je de tekst op de renderer instellen door te bellen setText
, en haal de tekst dan op door te bellen getText
:
public void onDraw (Canvas canvas, Rect bounds) ... myTextRenderer.setText (myComplicationText.getText (Context, data.getShortText (), currentTimeMillis)); myTextRenderer.draw (canvas, bounds); ...
Merk op dat veel complicaties tijdsafhankelijk zijn, dat is waarom currentTimeMillis
is opgenomen in het bovenstaande codefragment.
In dit artikel hebben we gekeken hoe u de nieuwe Android Wear UI-bibliotheek aan uw project kunt toevoegen en hoe u vandaag kunt gaan werken met een aantal componenten uit deze bibliotheek. We hebben ook twee componenten onderzocht die beloven om de integratie met de Complications-API van Android Wear veel gemakkelijker te maken dan voorheen.
In de volgende aflevering krijgen we een voorproefje van de opkomende functies in Android 3.0 door de nieuwste build van Android Studio Canary te verkennen.
Bekijk in de tussentijd enkele van onze andere zelfstudies en onze videocursussen over de ontwikkeling van Android-apps!