¿Puedo crear una interfaz de usuario o un widget en Android que se sitúe en la parte superior de todas las aplicaciones? Hay aplicaciones que tienen widgets como este. Un ejemplo tiene un ícono de cámara sobre todas las aplicaciones que, al hacer clic, capturarán la pantalla.¿Cómo crear una interfaz de usuario o un widget que se encuentra en la parte superior de todas las aplicaciones en Android?
Respuesta
Si solo desea mostrar algo, puede mostrarlo encima de todo incluso en la pantalla de bloqueo.
Si desea que se pueda hacer clic en algo, puede mostrarlo sobre cualquier cosa excepto la pantalla de bloqueo.
He aquí una muestra, modificar a sus necesidades:
crear un servicio y hacer lo siguiente:
//These three are our main components.
WindowManager wm;
LinearLayout ll;
WindowManager.LayoutParams ll_lp;
//Just a sample layout parameters.
ll_lp = new WindowManager.LayoutParams();
ll_lp.format = PixelFormat.TRANSLUCENT;
ll_lp.height = WindowManager.LayoutParams.FILL_PARENT;
ll_lp.width = WindowManager.LayoutParams.FILL_PARENT;
ll_lp.gravity = Gravity.CLIP_HORIZONTAL | Gravity.TOP;
//This one is necessary.
ll_lp.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
//Play around with these two.
ll_lp.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
ll_lp.flags = ll_lp.flags | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
//This is our main layout.
ll = new LinearLayout(this);
ll.setBackgroundColor(android.graphics.Color.argb(0, 0, 0, 0));
ll.setHapticFeedbackEnabled(true);
//And finally we add what we created to the screen.
wm.addView(ll, ll_lp);
Los siguientes son más opciones de cómo se muestra la vista.
Esto lo convertirá en una superposición en la parte superior de todo (incluida la pantalla de bloqueo), pero no se puede hacer clic. WindowManager.LayoutParams. TYPE_SYSTEM_OVERLAY
Esto hará que se puede hacer clic, pero no va a estar sobre la pantalla de bloqueo WindowManager.LayoutParams.TYPE_SYSTEM_ALERT
Esto hará que sea por encima de todo (incluyendo la pantalla de bloqueo) y hacer clic. WindowManager.LayoutParams.TYPE_SYSTEM_ERROR
Una cosa a tener en cuenta sobre el uso de "TYPE_SYSTEM_ERROR". Si conecta un evento de clic, todo lo que invoque ocurrirá detrás de la pantalla de bloqueo.
- 1. aplicación de Android que se ejecuta en la parte superior de todas las demás aplicaciones?
- 2. ¿Cómo crear aplicaciones de Android para todas las resoluciones?
- 3. Android: Cómo crear pestañas como las que se muestran en la interfaz de usuario de Android Página
- 4. ¿Cómo crear una interfaz de usuario como el nuevo mercado o Google plus?
- 5. Encuentra todas las diferencias en una serie de O (n)
- 6. ¿Cómo coloco el texto dentro de un widget EditText en la parte superior?
- 7. ¿Cómo puedo crear un 'pulso' al igual que la interfaz de usuario para una aplicación Android
- 8. Cabecera UITableView que se mantiene en la parte superior
- 9. Comprobar que el widget se encuentra en la pantalla de Android
- 10. ¿Cómo evito que se desplace hacia la parte superior de la página cuando aparece un cuadro de diálogo de la interfaz de usuario jQuery?
- 11. En Java, ¿se deberían declarar las variables en la parte superior de una función, o según se necesiten?
- 12. Mantener diálogos en la parte superior de la ventana, pero no en la parte superior de todo
- 13. Dibujando una superposición en la parte superior de la ventana de una aplicación
- 14. cómo mostrar JOptionPane en la parte superior de todas las ventanas
- 15. ¿Se eliminan las preferencias compartidas en las aplicaciones de Android cuando un usuario actualiza la aplicación?
- 16. ¿Cómo instalar XCode 4.5GM en la parte superior de la tienda de aplicaciones xcode 4.4.1?
- 17. Dibujo en la parte superior de una imagen en Javascript
- 18. ¿Cómo matar todas las aplicaciones en ejecución en Android?
- 19. ¿Cómo crear una interfaz de usuario como Google maps (un mapa que se puede arrastrar)?
- 20. ¿Cómo mantener un QWidget siempre en la parte superior?
- 21. posicionar un div en la parte superior de una imagen
- 22. ¿Cómo se encuentra la posición absoluta de un widget GTK en una ventana?
- 23. ¿Cómo crear un enlace de Android Market para enumerar todas las aplicaciones del desarrollador?
- 24. ¿Cómo verificar las aplicaciones que se ejecutan actualmente en Android?
- 25. Cómo obtener todas las aplicaciones instaladas en el teléfono Android
- 26. Juegos de herramientas o aplicaciones que crean interfaz de usuario desde Xsd
- 27. Obtener iconos de todas las aplicaciones instaladas en Android
- 28. Crear un servicio de calendario en la parte superior de Google Calendar
- 29. ¿Cómo crear un teclado Android que no sea un rectángulo en la parte inferior de la pantalla?
- 30. Coloque UIView en la parte superior de todas las demás vistas
Gracias. Funcionó con android.permission.SYSTEM_ALERT_WINDOW – Abi
Hatcyl, ¿puede proporcionarme el código completo si no le importa para que yo también pueda comprender todo el flujo? – Max
@hatcyl, ¿has probado la aplicación notifierpro? Se muestra en la parte superior de la pantalla de bloqueo también. Y se puede hacer clic. ¿Qué podría ser eso? – Enigma