Suggerimento rapido Introduzione alle icone adattive di Android O e alle scorciatoie a punta

In questa serie di suggerimenti rapidi abbiamo esaminato alcune delle prossime modifiche all'interfaccia utente con cui puoi iniziare a lavorare oggi, tramite l'anteprima di Android O Developer.

In questo post finale della serie, vedremo come è possibile creare icone di avvio che si integrano perfettamente con l'interfaccia utente più ampia del dispositivo e come creare scorciatoie che consentano agli utenti di passare direttamente alle azioni più importanti della tua app, direttamente da il loro homescreen.

Creazione di icone adattive

Con il rilascio di Android O, Original Equipment Manufacturers (OEM) come HTC e Samsung avranno la possibilità di fornire una maschera che il sistema applicherà a tutte le icone di avvio applicazioni. Le maschere assicurano che tutte le icone visualizzate su quel dispositivo abbiano la stessa forma: se l'OEM fornisce una maschera circolare, tutte le icone di avvio dell'applicazione saranno circolari e se fornisce una maschera quadrata arrotondata (o "squircle"), allora tutte le icone avranno angoli arrotondati.

Queste icone adattive hanno lo scopo di fornire un aspetto più coerente attraverso il dispositivo di avvio del dispositivo e in altre aree in cui le icone di avvio sono in primo piano, come il dispositivo impostazioni e condivisione di dialoghi.

Per garantire che le icone di avvio vengano visualizzate correttamente indipendentemente dalla maschera utilizzata, è necessario apportare alcune modifiche.

Prima di iniziare, controlla quello del tuo manifest Android: Icona l'attributo punta all'immagine che desideri utilizzare come icona di avvio:

Ogni icona adattiva è composta da un livello di sfondo, un livello di primo piano e una maschera. Quest'ultimo è fornito dall'OEM, ma è necessario fornire i livelli di sfondo e di primo piano. Per i migliori risultati, questi strati dovrebbero essere PNG senza maschere o ombre di sfondo. Entrambi i livelli devono essere 108x108 dpi, ma il 72x72 dpi interno è il contenuto che apparirà all'interno della finestra mascherata, poiché il sistema riserva i 36 dpi esterni attorno all'icona per gli effetti visivi, come ad esempio pulsare o parallasse.

Crea i tuoi livelli di sfondo e di primo piano e aggiungili al tuo progetto. Quindi, crea un res / mipmap-anydpi / ic_launcher.xml file e usarlo per fare riferimento ai due drawable che si desidera utilizzare come layer di sfondo e foreground, ad esempio:

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

A seconda del design della tua icona particolare, è possibile che le maschere circolari possano tagliare alcuni contenuti importanti. Se si sospetta che le maschere circolari potrebbero rappresentare un problema per l'icona, è possibile creare un'icona circolare dedicata che verrà utilizzata dal sistema ogni volta che si applica una maschera circolare.  

Crea questa icona circolare, aggiungi il tuo progetto e quindi fai riferimento a questa versione della tua icona nel Manifesto del tuo progetto, usando il Android: roundIcon attributo.

Scorciatoie scorciatoie

Alcuni dispositivi con Android consentiranno agli utenti di aggiungere collegamenti alle applicazioni al loro launcher. Queste scorciatoie appaiono come icone separate che l'utente lancia toccando, esattamente nello stesso modo in cui interagiscono con le normali icone di avvio delle applicazioni.

Ogni scorciatoia applicativa farà riferimento a uno o più Intenti, ognuno dei quali avvia un'azione specifica all'interno della tua app. Questo rende le scorciatoie appuntate un ottimo modo per consentire agli utenti di passare alle attività e ai contenuti più importanti della tua app direttamente dalla schermata iniziale. Ad esempio, potresti creare un collegamento che porta l'utente all'ultimo punto di salvataggio nell'app di gioco o al contatto più utilizzato.

Non c'è limite al numero di scorciatoie a spinning che puoi offrire, anche se per assicurarti che la tua app non prenda il controllo del programma di avvio dell'utente, ti consigliamo di offrire solo quattro scorciatoie in qualsiasi momento.

Per offrire una o più scorciatoie a spin, devi prima creare un'istanza di ShortcutManager:

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

Quindi, controlla che il dispositivo dell'utente supporti effettivamente le scorciatoie a spinotto:

if (mShortcutManager.isRequestPinShortcutSupported ()) 

Questo ritorna VERO se il programma di avvio predefinito supporta requestPinShortcut.

Supponendo che il dispositivo supporti le scorciatoie in-app, puoi quindi creare un ShortcutInfo oggetto che contiene un ID, un intento e un'etichetta per questo particolare collegamento.

ShortcutInfo pinShortcutInfo = ShortcutInfo.Builder (context, "my-shortcut"); .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 ();

Infine, si collega il collegamento chiamando requestPinShortcut ().Il programma di avvio predefinito riceverà questa richiesta, quindi chiederà all'utente di approvare o rifiutare l'operazione di blocco. Se la tua app deve sapere se l'operazione di pinning è stata un successo, a questo punto puoi anche creare un PendingIntent oggetto.

// Qui, assumiamo che il nostro progetto includa già un metodo createShortcutResultIntent (), che restituirà l'intento broadcast // Intent pinnedShortcutCallbackIntent = createShortcutResultIntent (pinShortcutInfo); PendingIntent successCallback = PendingIntent.createBroadcast (context, 0, pinnedShortcutCallbackIntent); mShortcutManager.requestPinShortcut (pinShortcutInfo, successCallback.getIntentSender ()); 

Questo PendingIntent invierà solo un resultIntent se l'operazione di pinning è un successo. La tua app non riceverà una notifica se l'operazione fallisce.

Una volta che il pin è stato creato, puoi aggiornare il suo contenuto usando il updateShortcuts () metodo. Tieni presente che i contenuti o le azioni aggiunti di solito hanno una scadenza. Nel nostro esempio di gioco, l'utente può raggiungere la fine del gioco o cancellare il suo file di salvataggio, a quel punto la scorciatoia appuntata non avrà alcun contenuto da visualizzare.

Mentre si è tentati di riciclare una scorciatoia appuntata modificando il suo scopo originale, è molto meno confusa per l'utente se si disabilitano le scorciatoie che non sono più rilevanti. Se una scorciatoia appuntata raggiunge la fine della sua vita, allora puoi disabilitarla chiamando disableShortcuts ().

Conclusione

In questa serie abbiamo esaminato alcuni degli aggiornamenti dell'interfaccia utente Android O che è possibile iniziare a sperimentare oggi installando la prima anteprima sviluppatore. Nella prima parte, ti ho mostrato come creare un testo che scala automaticamente in base alla configurazione corrente dello schermo; nella seconda parte abbiamo cercato di aggiungere font personalizzati ai tuoi progetti Android, e in questo post finale della serie abbiamo trattato le icone adattive e le scorciatoie appuntate.

Mentre sei qui, dai uno sguardo ad alcuni dei nostri altri post sullo sviluppo di app per Android!