Superposición de teclas de teclado de Android
Tengo curiosidad acerca de cómo puedo implementar la superposición siguiente en algún botón o presionar teclas como se muestra en la siguiente imagen? Estoy implementando teclado personalizado … necesitaba esto para lo mismo.
- ListView superpone otro diseño al desplazarse
- Dibujo de una línea / ruta en Google Maps
- Implementación de un mapa interior
- Servicio con Overlay - presione el botón de retroceso
- Dibujo sobre otras aplicaciones en Android
EDITAR:
Por lo tanto, he implementado un teclado como el siguiente utilizando un GridView.
Ahora, estoy intentando poner un cierto overlay (en tecleo) como en teclado del defecto.
Gracias 🙂
- Google maps api no coloca el marcador en la ubicación correcta
- El desplazamiento y el zoom de MapView es lento después de agregar muchas superposiciones
- Superposición transparente GLSurfaceview en la vista existente en android?
- ¿Cómo grabar video con superposición animada en Android?
- Captura de captura de pantalla en el teléfono Android durante la reproducción de vídeo y vista previa de la cámara
- ¿Cómo puedo superponer un archivo de audio sobre otro y guardarlo?
- Superposición sobre la barra de navegación en Android 4
- Pantalla de superposición en Android
Lo que buscas es "vista previa clave" Supongo que estás usando KeyboardView
para crear tu teclado personalizado. Puede activar la vista previa de la clave llamando a setPreviewEnabled (boolean previewEnabled) debería ser algo así: mKeyboardView.setPreviewEnabled(true);
Editar:
Creo que este enlace le ayudará en su implementación y explica más en detalle lo que estaba tratando de hacer.
En primer lugar, crear un diseño para el teclado, por lo general, sólo contiene un keyboardView:
<?xml version="1.0" encoding="UTF-8"?> <android.inputmethodservice.KeyboardView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/keyboard" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:keyPreviewLayout ="@layout/preview" />
Y luego crear otro diseño para la vista previa:
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:background="#ffff00" android:textStyle="bold" android:textSize="30sp"> </TextView>
Después de que diseñar el teclado en su caso algo así:
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android" android:keyWidth="10%p" android:horizontalGap="0px" android:verticalGap="0px" android:keyHeight="60dp"> <Row> <Key android:codes="49" android:keyLabel="1" android:keyEdgeFlags="left"/> <Key android:codes="50" android:keyLabel="2"/> <Key android:codes="51" android:keyLabel="3"/> </Row> <Row> <Key android:codes="52" android:keyLabel="4"/> <Key android:codes="53" android:keyLabel="5"/> <Key android:codes="54" android:keyLabel="6"/> </Row> <Row> <Key android:codes="55" android:keyLabel="7"/> <Key android:codes="56" android:keyLabel="8"/> <Key android:codes="57" android:keyLabel="9"/> </Row> </Keyboard>
Por último, en su código java que inflar su keyboardView o lo obtiene por su id si se incluye en un fragmento o el diseño de la actividad. Y usted fijó el teclado que usted diseñó a él.
kv = (KeyboardView)getLayoutInflater().inflate(R.layout.keyboard, null); keyboard = new Keyboard(this, R.xml.numeric); kv.setKeyboard(keyboard); kv.setOnKeyboardActionListener(this);
la mejor de las suertes.
Utilice un PopupWindow
para la funcionalidad de vista previa de la clave (Realmente hice lo mismo en mi último proyecto IME).
Te recomiendo usar una clase de niño de KeyboardView
ya que le ofrece un montón de funtions para hacer las cosas eay.Cada vez que se presiona la key
, el onPressed
se llama de vuelta y entonces usted sabe cuál es presionado. Y sumergirse en el código fuente de KeyboardView
, puede aprender dónde colocar su popupWindow
de la clase.
Sólo un pequeño esfuerzo. Pero si su clase no se deriva de KeyboardView
(como usar un GridView
), tendrá que tomar más tiempo para entenderlo. De todos modos, el código fuente es un buen comienzo.
- Cómo establecer un protocolo USB adb entre dos dispositivos Linux
- Cómo eliminar iconos de un menú de desbordamiento de ActionBarSherlock en Android 2.3?