comment changer la clé d'arrière-plan de n'importe quelle touche dans Android clavier souple
Je veux avoir certains de mes touches du clavier différent des autres.
Par exemple,comme shift, la supprimer, la touche espace en dessous de la photo:
Selon les documents de référence à partir de google. Nous pouvons changer la clé de l'arrière-plan par l'usage "android:keybackground=@drawable/xxx
" dans "input.xml
", mais il modifier l'arrière-plan de toutes les touches du clavier.
Bien que "android:keyicon" qwerty.xml peut avoir une seule clé changé,mais seulement de remplacer l'étiquette. Pendant ce temps, l'utilisation de "android:keyicon
" , l'image ne peut pas couvrir l'ensemble de la touche , l'image sera un petit peu plus petite que la clé de fond.
Quelle est la bonne façon de modifier l'arrière-plan de certaines touches?
OriginalL'auteur user2584144 | 2013-07-18
Vous devez vous connecter pour publier un commentaire.
Il n'est pas clair si vous comprenez comment faire pour créer un clavier personnalisé ou non. Dans le cas où vous ne le faites pas, voici un petit téléchargeable projet qui crée un custom clavier numérique. À la CustomKeyboardView classe, ou à votre propre personnalisé de la classe clavier, ajoutez la méthode suivante. Il remplace le onDraw() la méthode et dessine l'arrière-plan de la clé définie avec le code 7 (dans ce cas, le "0") le rouge et toutes les autres touches de bleu.
Dans ce cas, je n'ai pas utilisé 9-patch images, mais seulement quelques simples 50% transparent images carrées et obtenu un effet où les boutons existants sont simplement teinté avec les couleurs que je voulais. Pour obtenir un résultat plus personnalisé, j'ai pu faire mon un drawable 9-patch des images et d'effectuer les opérations suivantes. A noter que les deux touches avec les icônes ne s'affichent pas correctement car ils ne sont pas définis comme 9-patch images et je n'ai pas d'effort particulier pour rendre compte de l'échelle pour cet exemple. Je n'ai pas l'adresse de l'utilisation de différentes images, les effets, pour les différents états de la remise des clés; d'autres ont montré comment le faire.
OriginalL'auteur scottt
La première chose à noter est qu'il n'existe pas de moyen simple de le faire en XML, vous devrez le faire en Java.
Vous pouvez obtenir la liste des clés en utilisant le morceau de code suivant:
Une fois que vous avez la liste des clés, vous pouvez parcourir pour trouver ceux que vous voulez modifier, à l'aide d'une boucle for comme:
Veuillez vous référer à la documentation pour les propriétés de Clavier.Clé Android. Vous voudrez probablement utiliser les codes pour distinguer les touches.
Vous remarquerez qu'il n'y a pas de moyen direct de changer la couleur de fond d'une clé. Cependant, il existe un moyen de changer l'icône, de sorte que vous pouvez l'utiliser pour simuler le même comportement. Vous pouvez générer des objets dessinés qui contiennent la couleur dont vous avez besoin et de le définir comme l'icône. Vous pouvez utiliser un NinePatchDrawable.
Vous pouvez ajouter cette fonctionnalité soit dans le onStartInputView() méthode ou dans le onDraw() méthode. Vous pouvez voir un morceau de code qui est soi-disant de travail ici.
Alternativement, vous pouvez décider de mettre en place votre propre clavier. Dans le cas où vous voulez le faire, vous pouvez voir l'Android de la mise en œuvre ici. Vous pouvez copier ce et de les modifier directement fonction de vos besoins.
OriginalL'auteur Vlad Schnakovszki
Je ne peut pas poster de commentaires, alors j'ai mis un lien à une question similaire, j'ai trouvé où il y a une solution que je pense que c'est bien, le faire par code:
Personnaliser l'apparence d'un <Key>
OriginalL'auteur Sergio Borné