2016-02-13 17 views
8

La mia app ha un logo che posso rendere bianco o nero. L'icona di avvio che ho specificato è nera e vorrei mantenerla di quel colore. Tuttavia, la mia applicazione utilizza un tema scuro e anche il colore della barra del titolo dell'app nello stack delle app recenti è nero. L'icona nera sulla barra del titolo nera sembra brutta, specialmente accanto al testo bianco. Ecco uno screenshot per aiutare a spiegare: Ugly color combinationPosso impostare un'icona diversa per il commutatore di attività Android?

È possibile specificare un'icona diversa per il programma di avvio e il commutatore di attività?

MODIFICA: vedo che Chrome fa questo: cambia l'icona del commutatore di attività sulla favicon del sito corrente, quindi, a meno che quell'API non sia privata, so che questo è possibile in modo categorico.

risposta

1

Sì, a partire dall'API 21 in avanti, abbiamo un'opzione per personalizzare la rappresentazione della nostra app nella schermata Applicazioni recenti utilizzando l'API TaskDescription.

Se vi interessa soltanto l'icona, è possibile utilizzare questo frammento di seguito essenzialmente ovunque all'interno di un Activity:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
      setTaskDescription(
       new ActivityManager.TaskDescription(
        null, // Leave the default title. 
        R.drawable.the_icon_you_want, 
        null // Leave the default color      
     ) 
     } 

Tuttavia, è necessario tenere a mente che la presentazione della tua app nella schermata Applicazioni recenti è determinato dall'ultimo TaskDescription impostato.

Come citato da un articolo impressionante di Big Nerd Ranch su questa materia:

By default, the TaskDescription is based on the activity at the base of the task’s activity stack. Other activities that pile on will not affect the styling, unless those activities have a TaskDescription explicitly set at run time. The topmost activity with a TaskDescription explicitly set will trump the styling specified in the manifest or in activities below in the stack with TaskDescriptions set.

qui per ottenere il miglior risultato possibile, si vorrebbe mettere quel frammento all'interno onCreate(..) metodo s' MainActivity della tua app.

+1

Questo mi dà errore: tipi incompatibili: int non può essere convertito in Bitmap, R.drawable.the_icon_you_want' – BeniBela