2 votes

Comment créer une application/service pour des boutons virtuels/doux (Accueil, Menu, Retour, Recherche) toujours en haut ?

Je veux créer une application/service qui ressemble à (boutons tactiles Nexus One) pour les touches de navigation (Accueil, menu, Retour, Recherche)

Les boutons doivent toujours rester en haut et envoyer la commande à l'application actuellement en cours d'exécution.

Quelqu'un a des idées et des codes d'échantillon sur la façon de faire cela?

Mise à jour:

J'ai également vu et testé une application qui affiche un "écran fissuré" toujours en haut, donc cette technique pourrait être utile pour toujours afficher les boutons en haut.

Ces fonctions, montrer le bouton et capturer l'événement tactile et envoyer l'événement au programme actif, doivent être dans un module de service qui s'exécute en arrière-plan.

3voto

Romain Guy Points 57114

Vous ne pouvez pas faire ce genre d'application. Premièrement, vous ne pouvez pas maintenir une application toujours au premier plan, puis vous ne pouvez pas envoyer d'événements de touche à d'autres applications.

0voto

Golgorz Points 31

Vous pourriez faire ceci :

            WindowManager mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
    System.out.println("Accesibilty cargado correctametne");
    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    mTopView = (ViewGroup) inflater.inflate(R.layout.resourceshower, null);
    LayoutParams mWmlp = new WindowManager.LayoutParams(
            LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    mWmlp.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
            | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;
    mWmlp.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
    mWmlp.width = 100; //size of window
    mWmlp.height = 50;//size of window
    mWmlp.format = PixelFormat.TRANSPARENT;
    mWmlp.x =50; //position of window
    mWmlp.y = 50; //position of window
    mWindowManager.addView(mTopView, mWmlp);

Ensuite, si vous souhaitez obtenir des clics de bouton à l'intérieur, dans la mise en page que vous êtes en train d'inflater (R.layout.resourceshower) sur les boutons, ajoutez ceci : android:onClick="launch" et créez une méthode publique avec le même nom comme ceci : public void launch(View v){..} vous devez créer cette méthode dans le service/l'activité où vous créez la fenêtre flottante.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X