2012-11-15 7 views
17

FondamentalmenteAndroid, come sfocare/glass/frost attività corrente

In un'attività, ho una ListView. Quando seleziono un oggetto, un'attività trasparente si apre come una piccola scatola. Quando appare questo riquadro, è comunque possibile visualizzare la schermata di attività precedente,

Quello che sto cercando di capire è come confondere la schermata precedente, come l'immagine del legata here (Ignorare l'interfaccia utente, basta guardare l'erba offuscata la zona).

Com'è possibile?

Grazie per qualsiasi consiglio.

risposta

33

Per API < 14, è possibile utilizzare il flag WindowManager.LayoutParams.FLAG_BLUR_BEHIND, ma è stato deprecato e built-in sfocatura non è più supportato sulle API superiori

Tuttavia, si potrebbe fare questo con una vista normale o sovrapposizione. Che cosa si vuole fare è:

  • Creare un Bitmap dal layout generale della vostra attività (see here for example)
  • Blur che bitmap con qualsiasi metodo che si desidera (a few examples here)
  • aggiungere (o visualizzare) un View nella vostra layout che copre tutto. Impostare BKG a Bitmap offuscata
  • Aprire il dialogo/attività trasparente
  • Quando si chiude, rimuovere il View, o setVisibility(GONE) se userete di nuovo.
+0

Grazie, ci provo ora! – rennoDeniro

+0

Ciao, Gli esempi di sfocatura impiegano alcuni secondi a sfocare, quindi questo ritarda l'apertura della nuova attività, Come posso aggirare questo? Come vorrei che si offuschi e si apra il più velocemente possibile. – rennoDeniro

+0

Hai provato la versione NDK della risposta mostrata? L'autore ha registrato un aumento di velocità 40x nativo. Potrebbe essere un po 'troppo per una sfocatura se sei pura Java per tutto il resto, ma vale la pena sparare. Un'altra idea potrebbe essere quella di alterare i loop di pixel incrementando di 2 ogni round. Non sarà una sfocatura perfetta per i pixel, ma se fai semplicemente ogni altro pixel per entrambi gli x/y, dovrebbe impiegare solo 1/4 del tempo. Non sono sicuro di come apparirà, ma ci vorranno solo pochi minuti per cambiare il ciclo per scoprirlo. – Geobits

Problemi correlati