Google I / O 2017 Aftermath wat is nieuw voor Android Wear?

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.

Nieuwe Android Wear UI-bibliotheek 

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.

  • SwipeDismissFrameLayoutDit is een lay-out die u kunt gebruiken om aangepaste interacties voor uw te implementeren Uitzichts 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.

  • WearableRecyclerViewDit 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.

De nieuwe Android Wear-module toevoegen 

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;

Gemakkelijkere integratie met de Complications-API 

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

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); ...

TextRenderer

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.

Conclusie

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!