Comment ajouter une vue flottante à Android Window Manager et écouter les événements du bouton System / Hardware back
J'ai un service qui affiche un flottant vue sur le gestionnaire de fenêtres (à l'aide de WINDOW_TYPE_ALERT autorisation). Je suis en mesure d'afficher et d'effectuer des actions. Mais, j'ai deux questions spécifiques:
- Concernant la mise en œuvre de la variable vue
- Comment écouter système de bouton de retour de l'événement afin que je puisse rejeter la vue.
Mise en œuvre:
Dans le manifeste, j'ai ajouté les autorisations pour:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
J'ai un récepteur de radiodiffusion qui sera à l'écoute des événements d'Alarme. Lors de la réception de l'événement, je me lance un service pour afficher le flottant de vue. Voici le code que j'utilise pour créer la vue.
LayoutParams layOutParams = new WindowManager.LayoutParams(
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT);
Chaque fois qu'un utilisateur effectue une action sur la vue, je suis retrait de la vue depuis la fenêtre de gestionnaire et de tuer le service.
Ce que je voudrais savoir c'est si c'est la bonne façon d'aborder le problème ou est-il de meilleures façons de le faire? Et, dois-je apporter des modifications à la LayoutParams ou les garder?
Deuxièmement, je voudrais également faire disparaître ce flottant vue en cas de SYSTÈME/bouton de RETOUR de la conférence de presse. Tous les pointeurs sur la façon de le faire serait utile.
Attacher une capture d'écran de la variable pour une meilleure compréhension:
source d'informationauteur Handroid | 2013-08-08
Vous devez vous connecter pour publier un commentaire.
En termes de bouton de retour de détection - je l'ai fait de travailler de façon suivante (tout se passe dans le service onCreate code):
Ont un coup d'oeil à Standout de la Bibliothèque , ce qui est bon pour la manipulation des fenêtres flottantes , il semble, il n'est pas de la manipulation de retour de la conférence de presse , en contactant le développeur peut aider.
Et d'une façon de plus est, vous pouvez essayer d'ouvrir l'activité semi arrière-plan transparent/thème pour obtenir le même effet utilisé dans une fenêtre flottante.faire et backpress événement peut être manipulé
Concernant le bouton Retour -
Vous devez remplacer le "onBackPressed()" à l'intérieur de votre point de vue et de faire ce que vous voulez
De toute façon, je suis en utilisant un SDK appelé Tooleappour afficher des fenêtres flottantes dans un straight-forward.
Voulez-vous que le bouton d'ACCUEIL pour révoquer votre INTERFACE utilisateur? Si vous le faites, il semble comme il est préférable d'avoir une activité qui s'ouvre sur un arrière-plan transparent, au lieu d'une fenêtre d'alerte.
Pour ce faire, utiliser le style suivant le thème de votre activité
POUR le TRAVAIL "onBackpressed" BOUTON SUIVEZ les INSTRUCTIONS
1.Aller à FlotingFolder.java fichier de l'exemple (Pas de bibliothèque).
2.Trouver ci-dessous la méthode
Maintenant onBackPressed fonctionne.