La création d'un SoftKeyboard avec Plusieurs autres caractères par touche

J'ai suivi les exemples sur developer.android.com concernant Les Méthodes De Saisie et joué avec les SoftKeyboard exemple d'application. Ensemble, ils donnent plus de suffisamment d'informations concernant la création de clavier simple.

Ce que je ne peux pas voir dans l'API, c'est la capacité à créer une variante de /plusieurs caractères par touche qui est disponible sur le Clavier standard (LatinIME Clavier).

La création d'un SoftKeyboard avec Plusieurs autres caractères par touche

L'image ci-dessus est le résultat d'une pression longue sur la touche "a". Lorsque vous appuyez sur une touche, il est possible de remplir un popup avec d'autres caractères.

La création d'un SoftKeyboard avec Plusieurs autres caractères par touche

Il est également possible de donner un popup astuce sur certaines touches qui invite l'utilisateur à appuyer sur et maintenez une touche pour obtenir le menu contextuel.

Jusqu'à présent, je n'ai pas trouvé une source unique d'informations sur la façon dont cela est réalisé, j'espère que quelqu'un pourra me donner une longueur d'avance, jusqu'alors, je vais suivre le code source du clavier intégré et voir si je peux la recréer.

Edit: aiderait si developer.android.com s 'lien vers le LatinIME Clavier n'a pas de lien vers l'image d'un Les moutons 🙂 code source pour LatinIME.java.

Edit 2: Plus comme une référence que tout autre chose, c'est la séquence, je crois, une habitude, appuyez de manière prolongée sur l'action va de travers pour afficher la fenêtre contextuelle du clavier dans KeyboardView.java:

onTouchEvent()
onModifiedTouchEvent()
mHandkler.handleMessage() with MSG_LONGPRESS
openPopupIfRequired() 
onLongPress()

Edit 3:

Je n'ai toujours pas compris Comment faire ajouter une étiquette suggestions de clés? Une réponse suggère qu'il n'est pas intégré dans l'API, et en effet je n'ai pas trouvé la codeto ce faire. Toutefois, le Clavier sur 2.3.4 API (10), cette fonctionnalité étant mis en œuvre:

La création d'un SoftKeyboard avec Plusieurs autres caractères par touche

Voudrais bien comprendre comment IL fait, mais ce n'est pas n'importe où dans le onDraw() méthode que je peux voir - ce qui me fait croire qu'il a été écrit à l'extérieur de la KeyboardView élément. Je ne peux cependant trouver le layout de fichier utilisé pour afficher le KeyboardView élément sur le clavier intégré - Si quelqu'un sait où trouver ce peut-être qui me donnera l'idée dont j'ai besoin.

Edit 4: Déplacé touche Aperçu de la question ici, c'est légèrement hors sujet:

Comment avez-vous désactiver le SoftKeyboard touche de prévisualisation de la fenêtre?

  • Avez-vous trouvé une solution complète de mise en place des popups? veuillez mettre à jour