2015-06-23 24 views
20

Sto sviluppando un'applicazione con informazioni private e non dovrebbe visualizzare uno screenshot reale nel recente switcher dell'app di Android. Ho provato una variazione di this solution, impostando la visualizzazione del contenuto su un ImageView all'interno della funzione onPause, ma sembra che il sistema operativo acquisisca uno screenshot prima che la visualizzazione del contenuto venga modificata nell'immagine personalizzata.Quando fa il suo screenshot del commutatore di applicazioni recenti di Android?

Sono inoltre a conoscenza di setting the window's layout parameter flags to secure, rendendo lo screenshot completamente bianco, ma mi auguro che ci sarebbe un modo per personalizzare lo screenshot.

Quindi, mi chiedo a che punto Android scatti uno screenshot dell'app per lo switcher dell'app (in particolare in KitKat e Lollipop).

risposta

10

EDIT

Non è più possibile personalizzare la schermata che utilizza per presentare l'anteprima nelle recenti applicazioni di sistema.

Vecchio risposta

Date un'occhiata a metodo di Activity.onCreateThumbnail - questo è esattamente ciò che stai cercando in quanto consentono di trarre le vostre miniature per lo schermo recenti.

Si ottiene Canvas come uno dei parametri in cui è possibile disegnare (o non disegnare affatto) direttamente. Il punto principale è che devi restituire true da questo metodo, che indica che il sistema non disegna la miniatura stessa.

La soluzione più semplice potrebbe essere:

@Override 
public boolean onCreateThumbnail (Bitmap outBitmap, Canvas canvas) { 
    // Do nothing or draw on Canvas 
    return true; 
} 

o se si vuole disegnare la tua Bitmap

@Override 
public boolean onCreateThumbnail (Bitmap outBitmap, Canvas canvas) { 
    Bitmap myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.myBitmap); 
    canvas.drawBitmap(myBitmap, 0, 0, null); 

    return true; 
} 
+0

Potrei prega di ottenere un esempio di codice su come utilizzare sia la bitmap e la tela? L'ho provato anche prima e non sapevo come manipolare i due. –

+0

@LouieBertoncin ha aggiunto l'esempio –

+0

Ok, ecco cosa ho fatto per utilizzare i due parametri: 'outBitmap = BitmapFactory.decodeResource (getResources(), R.drawable.myBitmap);' 'canvas.drawBitmap (outBitmap, 0, 0, new Paint()); ' –