Pantalla de superposición en Android
¿Cómo es posible agregar vistas / imágenes a mi pantalla de inicio?
El mejor ejemplo es el mensajero de Facebook: Si haces un clic largo en un elemento de chat, puedes elegir "pop out cheat head", luego tienes un pequeño botón sobrepuesto a tu pantalla.
- El desplazamiento y el zoom de MapView es lento después de agregar muchas superposiciones
- Comportamiento extraño de superposición al ampliar el MapView
- Google Maps Android API v2 Superposición de rutas
- Superposición de ScrollView durante la reproducción de vídeo
- Cómo agregar vista de superposición sobre otra vista en android?
También hay aplicaciones como protectores de pantalla, una imagen de una pantalla rota superpone todo desde el teléfono.
Lo he buscado, pero no tengo idea de cómo se llama.
Espero que ustedes sean capaces de entender mi inglés.
- SetFocus (overlayItem) de ItemizedOverlay no funciona
- Creación de una ventana de superposición del sistema (siempre en la parte superior)
- Android Map Rendimiento pobre debido a muchas superposiciones?
- Mapas de Android NullPointerException ItemizedOverlay
- Convertir la ubicación en GeoPoint
- Implementación de un mapa interior
- Clips de superposición de objetos de galería
- Diferentes marcadores con nombre en Google Android Map
La respuesta es SYSTEM_ALERT_WINDOW, esto le da la capacidad de dibujar sobre cualquier cosa en android, misma característica que facebook está utilizando para dibujar sus cabezas de chat.
http://developer.android.com/reference/android/Manifest.permission.html#SYSTEM_ALERT_WINDOW
Código de muestra:
private WindowManager windowManager; private ImageView imageView; // Get window manager reference windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); imageView= new ImageView(YOUR_CONTEXT_HERE); imageView.setImageResource(R.drawable.android_head); // Setup layout parameter WindowManager.LayoutParams params = new WindowManager.LayoutParams( WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_PHONE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.TRANSLUCENT); params.gravity = Gravity.TOP | Gravity.LEFT; // Orientation params.x = 100; // where you want to draw this, coordinates params.y = 100; // At it to window manager for display, it will be printed over any thing windowManager.addView(chatHead, params); // Make sure to remove it when you are done, else it will stick there until you reboot // Do keep track of same reference of view you added, don't mess with that windowManager.removeView(imageView);
- ¿Por qué Android LocationManager tiene un gran retraso antes de que las actualizaciones de ubicación se inicien si la precisión del ajuste
- No se pudo actualizar el proyecto Gradle en Android Studio 1.2.1.1