Snabbtips Introduktion till Android O s anpassningsbara ikoner och spärrade genvägar

I den här serien av snabba tips har vi tittat på några av de kommande användargränssnittsändringar som du kan börja jobba med idag, via Android O Developer Preview.

I det här sista inlägget i serien kommer vi att titta på hur du kan skapa lanseringsikoner som integrerar perfekt med enhetens bredare användargränssnitt, och hur man skapar genvägar som gör det möjligt för användare att hoppa direkt till din apps viktigaste åtgärder direkt från deras hemskärm.

Skapa anpassningsbara ikoner

Med utgåvan av Android O kommer originalutrustningstillverkare (OEM) som HTC och Samsung att ha möjlighet att tillhandahålla en mask som systemet kommer att gälla för alla applikationsstart-ikoner. Masker ser till att alla ikoner som visas på den enheten har samma form: Om OEM-enheten har en cirkulär mask, så kommer alla ikoner för programstartaren att vara cirkulär och om den ger en rundad kvadrat (eller "squircle") mask, så ikonerna kommer att ha rundade hörn.

Dessa adaptiva ikoner är avsedda att ge ett mer konsekvent utseende över enhetens startprogram och på andra områden där startikonikoner är framträdande, t.ex. enhetens inställningar och dela dialoger.

För att säkerställa att ikonen för startprogrammet visas rätt, oavsett vilken maske som används, måste du göra några justeringar.

Innan du börjar, kontrollera att din manifest är android: icon attribut pekar på den bild som du vill använda som startikon:

Varje adaptiv ikon består av ett bakgrundslag, ett förgrundsskikt och en mask. Det senare tillhandahålls av OEM, men du måste tillhandahålla bakgrunds- och förgrundslagen. För de bästa resultaten ska dessa lager vara PNG utan några maskar eller bakgrundsskuggor. Båda lagren måste vara 108x108 dpi, men den inre 72x72 dpi är innehållet som kommer att visas inom det maskerade visningsporten, eftersom systemet reserverar den yttre 36 dpi runt ikonen för visuella effekter, såsom pulserande eller parallax.

Skapa dina bakgrunds- och förgrundslager och lägg sedan till dem i ditt projekt. Skapa sedan en res / mipmap-anydpi / ic_launcher.xml fil och använd den för att referera till de två dragningarna du vill använda som bakgrunds- och förgrundslager, till exempel:

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

Beroende på utformningen av din speciella ikon är det möjligt att cirkulära masker kan skära av ett viktigt innehåll. Om du misstänker att cirkulära masker kan utgöra ett problem för din ikon, kan du skapa en särskild cirkulär ikon som systemet kommer att använda närhelst det applicerar en cirkulär mask.  

Skapa den här cirkulära ikonen, lägg till projektet, och hänvisa sedan till den här versionen av din ikon i projektets manifest med hjälp av android: roundIcon attribut.

Korta genvägar

Vissa enheter som kör Android tillåter användare att peka programgenvägar till startprogrammet. Dessa genvägar visas som separata ikoner som användaren startar genom att knacka på, på exakt samma sätt som de interagerar med vanliga programrapporteringsikoner.

Varje programgenväg kommer att referera till en eller flera Intents, som varje startar en specifik åtgärd inom din app. Det gör att snabba genvägar är ett bra sätt att låta användare hoppa till din apps viktigaste uppgifter och innehåll direkt från deras startsida. Du kan till exempel skapa en genväg som tar användaren till den senaste sparade punkten i din spelapp eller till deras mest använda kontakt.

Det finns ingen gräns för antalet fasta genvägar du kan erbjuda, men för att säkerställa att din app inte tar över användarens startprogram rekommenderar vi att du bara erbjuder fyra genvägar vid en tidpunkt.

För att erbjuda en eller flera fasta genvägar måste du först skapa en instans av ShortcutManager:

ShortcutManager myShortcutManager = context.getSystemService (ShortcutManager.class);

Kontrollera sedan att användarens enhet faktiskt stöder fasta genvägar:

om (mShortcutManager.isRequestPinShortcutSupported ()) 

Detta returnerar SANN om standard launcher stöder requestPinShortcut.

Om du antar att enheten stöder genvägar i appen kan du sedan skapa en ShortcutInfo objekt som innehåller ett ID, en avsikt och en etikett för den här genvägen.

ShortcutInfo pinShortcutInfo = ShortcutInfo.Builder (kontext, "min genväg"); .setShortLabel (getString (R.string.shortcut_label)) .setLongLabel (getString (R.string.shortcut_long_label)) .setIcon (Icon.createWithResource (kontext, R.mipmap.ic_launcher)) .setIntent (nytt Intent (Intent.ACTION_VIEW, Uri.parse ("https://www.google.com"))) .build ();

Slutligen pekar du på genvägen genom att ringa requestPinShortcut ().Standard launcher kommer att få denna förfrågan och sedan be användaren att godkänna eller neka pinning-operationen. Om din app behöver veta om pinning-operationen var en framgång, så kan du nu skapa en PendingIntent objekt.

// Här antar vi att vårt projekt redan innehåller en createShortcutResultIntent () -metod, som kommer att returnera sändningsintentionen // Intent pinnedShortcutCallbackIntent = createShortcutResultIntent (pinShortcutInfo); PendingIntent successCallback = PendingIntent.createBroadcast (kontext, 0, pinnedShortcutCallbackIntent); mShortcutManager.requestPinShortcut (pinShortcutInfo, successCallback.getIntentSender ()); 

Detta PendingIntent skickar bara en resultIntent om pinning operationen är en framgång. Din app kommer inte att få ett meddelande om åtgärden misslyckas.

När stiftet har skapats kan du uppdatera innehållet med hjälp av updateShortcuts () metod. Var bara medveten om att fastnat innehåll eller handlingar brukar ha en hållbarhetstid. I vårt spelexempel kan användaren komma till slutet av spelet eller radera deras spara fil, vid vilken tidpunkt din fastade genväg inte har något innehåll att visa.

Medan det är frestande att återvinna en spärrad genväg genom att anpassa sitt ursprungliga syfte, är det mycket mindre förvirrande för användaren om du inaktiverar genvägar som inte längre är relevanta. Om en pinnad genväg når slutet av livet, kan du inaktivera den genom att ringa disableShortcuts ().

Slutsats

I den här serien har vi tittat på några av uppdateringarna för Android O-användargränssnitt som du kan börja experimentera med idag genom att installera den första utvecklarförhandsgranskningen. I del ett visade jag dig hur man skapar text som auto skalar baserat på den aktuella skärmkonfigurationen. i del två såg vi på att lägga till anpassade teckensnitt till dina Android-projekt, och i det här sista inlägget i serien har vi täckt adaptiva ikoner och spärrade genvägar.

Medan du är här, kolla in några av våra andra inlägg i Android apputveckling!