Snelle tip Maak kennis met de Adaptieve pictogrammen en vastgelegde snelkoppelingen van Android O

In deze reeks snelle tips hebben we gekeken naar enkele van de komende veranderingen in de gebruikersinterface waarmee u vandaag aan de slag kunt gaan, via de Android O Developer Preview.

In deze laatste post in de serie gaan we bekijken hoe u launcherpictogrammen kunt maken die perfect kunnen worden geïntegreerd in de bredere gebruikersinterface van het apparaat en hoe u snelkoppelingen kunt maken waarmee gebruikers direct naar de belangrijkste acties van uw app kunnen gaan, rechtstreeks van hun startscherm.

Adaptieve pictogrammen maken

Met de introductie van Android O zullen Original Equipment Manufacturers (OEM), zoals HTC en Samsung, de optie hebben om een ​​masker te bieden dat het systeem zal toepassen op alle pictogrammen van het startpictogram. Maskers zorgen ervoor dat alle pictogrammen die op dat apparaat verschijnen, dezelfde vorm hebben: als de OEM een cirkelvormig masker levert, zijn alle pictogrammen voor het starten van de toepassing cirkelvormig en als het een afgerond vierkant (of 'squirkel') masker oplevert, dan de pictogrammen hebben afgeronde hoeken.

Deze adaptieve pictogrammen zijn bedoeld om een ​​consistent uiterlijk en gevoel te bieden in het opstartprogramma van het apparaat en in andere gebieden waar opstartpictogrammen prominent aanwezig zijn, zoals de apparaten van uw apparaat instellingen en het delen van dialogen.

Om ervoor te zorgen dat de pictogrammen van uw draagraket correct worden weergegeven, ongeacht het gebruikte masker, moet u een paar aanpassingen aanbrengen.

Controleer voordat je begint of je manifesteert android: icon attribuut wijst naar de afbeelding die u wilt gebruiken als uw opstartpictogram:

Elk adaptief pictogram bestaat uit een achtergrondlaag, een voorgrondlaag en een masker. Dit laatste wordt geleverd door de OEM, maar u moet de achtergrond- en voorgrondlagen opgeven. Voor de beste resultaten moeten deze lagen PNG's zijn zonder maskers of achtergrondschaduwen. Beide lagen moeten 108x108 dpi zijn, maar de binnen 72x72 dpi is de inhoud die in het gemaskeerde venster wordt weergegeven, omdat het systeem de buitenste 36 dpi rond het pictogram reserveert voor visuele effecten, zoals pulserend of parallax.

Maak je achtergrond- en voorgrondlagen en voeg ze vervolgens toe aan je project. Maak vervolgens een res / mipmap-anydpi / ic_launcher.xml bestand en gebruik het om te verwijzen naar de twee tekstrappen die u wilt gebruiken als uw achtergrond- en voorgrondlagen, bijvoorbeeld:

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

Afhankelijk van het ontwerp van uw specifieke pictogram, is het mogelijk dat circulaire maskers belangrijke inhoud kunnen afsnijden. Als u vermoedt dat circulaire maskers een probleem kunnen vormen voor uw pictogram, kunt u een speciaal rond pictogram maken dat het systeem zal gebruiken wanneer het een cirkelvormig masker toepast.  

Maak dit circulaire pictogram, voeg het uw project toe en verwijs vervolgens naar deze versie van uw pictogram in het Manifest van uw project, met behulp van de android: roundIcon attribuut.

Sneltoetsen vastzetten

Op sommige apparaten met Android kunnen gebruikers sneltoetsen naar hun opstartprogramma vastzetten. Deze snelkoppelingen verschijnen als afzonderlijke pictogrammen die de gebruiker start door erop te tikken, op precies dezelfde manier waarop ze communiceren met de pictogrammen van de normale applicatiestarter..

Elke snelkoppeling van een toepassing verwijst naar een of meer Intents, die elk een specifieke actie in uw app starten. Dit maakt vastgezette snelkoppelingen een geweldige manier om gebruikers toe te laten naar de belangrijkste taken en inhoud van uw app te springen, rechtstreeks vanaf hun startscherm. U kunt bijvoorbeeld een snelkoppeling maken waarmee de gebruiker naar het laatste opslagpunt in uw gaming-app of naar de meest gebruikte contactpersoon gaat.

Er is geen limiet op het aantal vastgezette snelkoppelingen dat u kunt aanbieden, maar om ervoor te zorgen dat uw app het opstartprogramma van de gebruiker niet overneemt, is het aan te bevelen om slechts vier snelkoppelingen tegelijk aan te bieden.

Als u een of meer vastgezette snelkoppelingen wilt aanbieden, moet u eerst een instantie maken van ShortcutManager:

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

Controleer vervolgens of het apparaat van de gebruiker daadwerkelijk vastgezette snelkoppelingen ondersteunt:

if (mShortcutManager.isRequestPinShortcutSupported ()) 

Dit komt terug TRUE als de standaard launcher ondersteunt requestPinShortcut.

Ervan uitgaande dat het apparaat in-app-snelkoppelingen ondersteunt, kunt u vervolgens een ShortcutInfo object dat een ID, een intentie en een label voor deze specifieke snelkoppeling bevat.

ShortcutInfo pinShortcutInfo = ShortcutInfo.Builder (context, "mijn-snelkoppeling"); .setShortLabel (getString (R.string.shortcut_label)) .setLongLabel (getString (R.string.shortcut_long_label)) .setIcon (Icon.createWithResource (context, R.mipmap.ic_launcher)) .setIntent (new Intent (Intent.ACTION_VIEW, Uri.parse ("https://www.google.com"))) .build ();

Ten slotte pint u de snelkoppeling door te bellen requestPinShortcut ().Het standaard startprogramma ontvangt dit verzoek en vraagt ​​de gebruiker vervolgens de pinning-bewerking goed te keuren of af te wijzen. Als uw app moet weten of de pinning-bewerking een succes was, kunt u op dit moment ook een PendingIntent voorwerp.

// Hier veronderstellen we dat ons project al een createShortcutResultIntent () -methode bevat, die de bedoeling van de uitzending zal terugbrengen // Intent pinnedShortcutCallbackIntent = createShortcutResultIntent (pinShortcutInfo); PendingIntent successCallback = PendingIntent.createBroadcast (context, 0, pinnedShortcutCallbackIntent); mShortcutManager.requestPinShortcut (pinShortcutInfo, successCallback.getIntentSender ()); 

Deze PendingIntent stuurt alleen een resultIntent als de pinningbewerking een succes is. Uw app ontvangt geen melding als de bewerking mislukt.

Nadat de pin is gemaakt, kunt u de inhoud bijwerken met behulp van de updateShortcuts () methode. Houd er rekening mee dat vastgezette inhoud of acties meestal een houdbaarheidsdatum hebben. In ons spelvoorbeeld kan de gebruiker het einde van het spel bereiken of zijn opslagbestand verwijderen, waarna de vastgezette snelkoppeling geen inhoud meer heeft om weer te geven.

Hoewel het verleidelijk is om een ​​vastgezette snelkoppeling te recyclen door het oorspronkelijke doel aan te passen, is het veel minder verwarrend voor de gebruiker als je snelkoppelingen uitschakelt die niet langer relevant zijn. Als een vastgezette snelkoppeling het einde van zijn levensduur bereikt, kunt u deze uitschakelen door te bellen disableShortcuts ().

Conclusie

In deze serie hebben we gekeken naar enkele van de updates van de Android O-gebruikersinterface waarmee u vandaag kunt beginnen met experimenteren door de eerste Developer Preview te installeren. In deel een liet ik zien hoe je tekst kunt maken die automatisch wordt geschaald op basis van de huidige schermconfiguratie; in deel twee hebben we gekeken naar het toevoegen van aangepaste lettertypen aan je Android-projecten en in deze laatste post in de serie hebben we adaptieve pictogrammen en vastgezette snelkoppelingen besproken.

Kijk terwijl je hier bent naar enkele van onze andere berichten over de ontwikkeling van Android-apps!