Denken Sie zunächst bitte lange und gründlich darüber nach, ob Sie die Home
Schaltfläche oder eine andere Schaltfläche (z. B. die Back
Schaltfläche) wirklich deaktivieren möchten. Dies sollte nicht getan werden (zumindest in den meisten Fällen ist dies ein schlechtes Design ). Ich kann nur für mich selbst sprechen, aber wenn ich eine App heruntergeladen habe, mit der ich nicht auf eine Betriebssystemschaltfläche klicken kann, deinstalliere ich diese App als Nächstes und hinterlasse eine sehr schlechte Bewertung. Ich glaube auch, dass Ihre App nicht im App Store angeboten wird.
Jetzt...
Beachten Sie, dass Sie MX Player
um die Erlaubnis gebeten werden, über andere Anwendungen zu zeichnen:
Da Sie die Home
Schaltfläche auf dem Android
Gerät nicht überschreiben können (zumindest nicht in den neuesten Betriebssystemversionen). MX Player
Zeichnet sich auf Ihren Launcher, wenn Sie die App "sperren" und auf die Home
Schaltfläche klicken .
Um ein Beispiel dafür zu sehen, das etwas einfacher und einfacher zu verstehen ist, können Sie die Facebook Messenger App sehen .
Da ich gebeten wurde, weitere Informationen zu MX Player Status Bar
und Navigation Bar
"Überschreiben" bereitzustellen , bearbeite ich meine Antwort, um auch diese Themen aufzunehmen.
Als erstes verwendet MX Player den immersiven Vollbildmodus ( DevBytes Video ) KitKat
.
Android 4.4 (API Level 19) führt ein neues SYSTEM_UI_FLAG_IMMERSIVE- Flag für setSystemUiVisibility () ein , mit dem Ihre App wirklich "Vollbild" wird. Dieses Flag verbirgt in Kombination mit den Flags SYSTEM_UI_FLAG_HIDE_NAVIGATION und SYSTEM_UI_FLAG_FULLSCREEN die Navigations- und Statusleisten und lässt Ihre App alle Berührungsereignisse auf dem Bildschirm erfassen.
Wenn der immersive Vollbildmodus aktiviert ist, empfängt Ihre Aktivität weiterhin alle Berührungsereignisse. Der Benutzer kann die Systemleisten mit einem Wisch nach innen entlang des Bereichs anzeigen, in dem die Systemleisten normalerweise angezeigt werden. Dadurch wird das Flag SYSTEM_UI_FLAG_HIDE_NAVIGATION (und das Flag SYSTEM_UI_FLAG_FULLSCREEN , falls angewendet) gelöscht , sodass die Systemleisten sichtbar werden. Dies löst auch Ihren View.OnSystemUiVisibilityChangeListener aus , falls festgelegt. Wenn Sie jedoch möchten, dass die Systemleisten nach einigen Augenblicken automatisch wieder ausgeblendet werden , können Sie stattdessen das Flag SYSTEM_UI_FLAG_IMMERSIVE_STICKY verwenden. Beachten Sie, dass die "Sticky" -Version des Flags keine Listener auslöst, da sich die in diesem Modus vorübergehend angezeigten Systemleisten in einem vorübergehenden Zustand befinden.
Zweitens: Ausblenden der Statusleiste
Drittens: Ausblenden der Navigationsleiste
Bitte beachten Sie, dass die Verwendung des immersiven Vollbilds nur für KitKat
, das Ausblenden der Status Bar
und Navigation Bar
nicht nur für KitKat
.
Ich habe nicht viel zu sagen über die 2. und 3. Sie haben die Idee, ich glaube, es ist auf jeden Fall eine schnelle Lektüre. Achten Sie einfach genau auf View.OnSystemUiVisibilityChangeListener .
Ich habe eine Übersicht hinzugefügt, die erklärt, was ich meinte. Sie ist nicht vollständig und muss repariert werden, aber Sie werden auf die Idee kommen. https://gist.github.com/Epsiloni/8303531
Viel Glück bei der Umsetzung und viel Spaß!