Widget flotante / superposición en el lanzador de Android

¿Alguien tiene alguna idea de cómo se puede implementar?

Algunos ejemplos:

  • Https://play.google.com/store/apps/details?id=gpc.myweb.hinet.net.PopupWeb
  • Https://play.google.com/store/apps/details?id=gpc.myweb.hinet.net.PopupVideo
  • Https://play.google.com/store/apps/details?id=com.milone.floatwidget

¿Alguna idea? Gracias.

2 Solutions collect form web for “Widget flotante / superposición en el lanzador de Android”

Eso se hace utilizando una superposición en la parte superior de la actividad existente independientemente. Usted puede encontrar la fuente encontrada aquí en mi github para demostrar la prueba del concepto que estaba en la pregunta de stackexchange.com del androide en la cual alguien que sufría de una inhabilidad y no podía deslizar la pantalla para desplazarse y buscaba una manera de hacer esto convenientemente , En el que yo embebido juntos el código para mostrar 'Page Up / Page Down' con el movimiento mínimo, simplemente tocando en el texto (en realidad, es un botón) que se superponen en la parte superior de una actividad. Pero debido a la forma en que funcionaba Android y la seguridad, el evento de desplazamiento no podía ser inyectado en la actividad en ejecución.

La forma en que funciona es esto, de la actividad onCreate hay esto

 WindowManager.LayoutParams layOutParams = new WindowManager.LayoutParams( WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, PixelFormat.TRANSLUCENT); 

El indicador que se necesita es WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY y WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH .

La responsabilidad es asegurar que el tacto se está manejando lo que significa mirar hacia fuera cuando el evento táctil 'golpea' en un área y actuar en consecuencia. Al "escuchar" en el evento onTouch de onTouch , es decir:

 LayoutInflater layOutInflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE); View myView = layOutInflater.inflate(R.layout.myview, null); myView.setOnTouchListener(new OnTouchListener(){ @Override public boolean onTouch(View v, MotionEvent event) { .... } }); 

Por ejemplo, imagine un botón dentro de ese diseño de myview , por lo que con un widget de botón,

 Button myButton = (Button)myView.findViewById(R.id.myButton); Rect outRectHit = new Rect(); myButton.getHitRect(outRectHit); 

Ahora necesitamos determinar la "colisión" de los límites del tacto, que sucede dentro del controlador onTouch :

 float x = event.getX(); float y = event.getY(); if (x > outRectHit.left && x < outRectHit.right && y > outRectHit.top && y < outRectHit.bottom){ ... Handle this accordingly } 

Este breve resumen explica cómo hacer algo como una superposición encima de cualquier actividad.

Sólo para asegurarse de que el código se depura y no interfiere en ninguna forma con cualquier actividad que se muestra. Por ejemplo, ¿qué sucede si la actividad es de hecho un juego OpenGL, ¿qué haces?

Esto es para ilustrar lo que hay que vigilar.

Es posible que desee echar un vistazo a Tooleap SDK . Ofrece la forma más sencilla de convertir las actividades regulares de Android en widgets flotantes.

Por ejemplo, supongamos que tiene una actividad llamada MyActivity

 Intent intent = new Intent(context, MyActivity.class); TooleapPopOutMiniApp miniApp = new TooleapPopOutMiniApp(context, intent); Tooleap tooleap = Tooleap.getInstance(context); tooleap.addMiniApp(miniApp); 

MyActivity ahora estará disponible como un widget flotante encima de cualquier otra aplicación.

  • Dibujar superposición en Android (en todo el sistema)
  • Superposiciones de mapa más eficientes en Android
  • ¿Cómo expandir el marcador de superposición en Google Maps?
  • ¿Cómo crear una superposición que bloquea los eventos de toque a la interfaz de usuario debajo de él?
  • Eliminar todas las superposiciones
  • Primera vista arriba / superpuesta en LinearLayout
  • Aplicación de Android: mostrar elementos de superposición en AsyncTask
  • Superponer una actividad en otra actividad O superponer una vista sobre otra
  • Android ViewPager: fragmentos superpuestos cuando el ancho de página se establece en 90%
  • Cómo dibujar polígono mano libre en Google mapa V2 en Android?
  • Custom OverlayItem sin dibujar
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.