web-dev-qa-db-fra.com

Android, comment brouiller / verre / givre l'activité actuelle

Fondamentalement

Dans une activité, j'ai un ListView. Lorsque je sélectionne un élément, une activité transparente s'ouvre sous la forme d'une petite boîte. Lorsque cette boîte apparaît, vous pouvez toujours afficher l'écran des activités précédentes,

Ce que j'essaie de comprendre, c'est comment brouiller l'écran précédent comme l'image liée ici (Ignorez l'interface utilisateur, regardez simplement la zone d'herbe floue).

Comment est-ce possible?

Merci pour tout conseil.

18
rennoDeniro

Pour l'API <14, vous pouvez utiliser l'indicateur WindowManager.LayoutParams.FLAG_BLUR_BEHIND, Mais il est obsolète et le flou intégré n'est plus pris en charge sur les API supérieures

Cependant, vous pouvez le faire avec une vue ou une superposition standard. Ce que vous voulez faire, c'est:

  • Créez un Bitmap à partir de la mise en page globale de votre activité ( voir ici par exemple )
  • Brouillez ce bitmap avec la méthode que vous voulez ( quelques exemples ici )
  • Ajoutez (ou affichez) un View dans votre mise en page qui couvre tout. Définir bkg sur Bitmap floue
  • Ouvrez votre dialogue/activité transparente
  • Quand il se ferme, supprimez le View ou setVisibility(GONE) si vous allez l'utiliser à nouveau.
34
Geobits