Comment puis-je définir des arrière-places pour chaque touche du clavier Android. KeyboardView Android: Keybackground Strong> fournit un fond pour toutes les clés. Mais je veux définir différents horizons pour chaque clé. P>
4 Réponses :
J'ai essayé de le faire aussi. L'arrière-plan clé est dessiné dans OnbufferDraw () dans la classe KeyboardView. Le problème est qu'il s'agit d'une méthode privée, vous ne pouvez donc pas le remplacer par une sous-classe. J'ai donc essayé de copier le clavier pourvoir et de modifier cela, mais il utilise À ce stade, il commence à ressembler à je dois jeter les cours de clavier d'Android sur la fenêtre et écrire le tout à partir de zéro --all B / C Je ne peux pas changer l'image de fond de la clé d'espace. Ridicule. P> com.android.internal.r code> ressources, qu'une application externe n'a pas accès. Donc, cette approche ne fonctionne pas. p>
À partir de zéro n'est pas si difficile. En fait, vous ne pouvez que copier / coller KeyboardView.java de la source ouverte dans une nouvelle sous-classe de KeyboardView et commencez à le personnaliser en fonction de vos besoins.
De nombreuses classes à Android sont qui impossibles à personnaliser. Il serait beaucoup plus facile d'accomplir si l'architecture d'Android utilisait des délégués (ou des auditeurs) et autorisé le remplacement des classes d'assistance à plus de points.
Je suggère de copier / coller KeyboardView.java dans votre classe de visualisation personnalisée de clavier. De cette façon, vous obtenez toutes les fonctionnalités pré-écrites et vous pouvez remplacer tout ce dont vous avez besoin. C'est ce que j'ai fait.
Si vous écrivez votre propre IME, essayez d'utiliser une image dessinable pour l'image de premier plan (avec Android: Keyicon dans XML ou Key.icon en Java) qui est égal à la taille de la touche entière. Ceci est essentiellement équivalent à la définition de l'image d'arrière-plan d'une seule clé. Bien sûr, vous devrez également inclure le premier plan dans votre image. P>
Vous devrez également utiliser une image d'arrière-plan sans rembourrage, de sorte que cela ne pique pas autour des bords. Voir cette annonce pour plus de détails sur la façon de faire ceci: Comment a 9Patch PNG Travailler dans les applications Android P>
Barry P>
I personnalisé MykeyboradView Extendez le clavierView et remplacer la méthode ondraw. L'effet de réalisation est la suivante
p> Ce liens: HTTPS: // github.com/xuejinwei/numberkeyboard p> p>
Vous avez eu un succès avec les paramètres des clés de clé personnalisés pour une seule touche sur le clavier?