Comment puis-je implémenter un clavier spécial

Je veux créer un clavier spécial pour l'utiliser dans mon application Android comme suit

Entrez la description de l'image ici

  • Forme desséchable ne s'affiche pas lorsqu'il est utilisé en combinaison avec l'attribut android: drawableBottom.
  • Possibilité de gonfler une disposition XML dans un service? (Android)
  • La disposition de l'écran se déplace lorsque le clavier est affiché
  • CollapsingToolbarLayout avec tabulation et image en collapsus avec une barre d'outils collante
  • Android: comment ouvrir par programme le clavier doux dans Emoji View
  • Le clavier doux couvre un EditText dans un PopupWindow
  • J'ai travaillé sur l'exemple de clavier logiciel et j'ai édité le qwerty.xml

    <?xml version="1.0" encoding="utf-8"?> <!-- /* ** ** Copyright 2008, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <Keyboard xmlns:android="http://schemas.android.com/apk/res/android" android:keyWidth="10%p" android:horizontalGap="0px" android:verticalGap="0px" android:keyHeight="6%p" > <Row android:keyWidth="18%p"> <Key android:codes="49" android:keyLabel="1" android:keyEdgeFlags="left"/> <Key android:codes="50" android:keyLabel="2"/> <Key android:codes="51" android:keyLabel="3"/> <Key android:codes="52" android:keyLabel="4"/> <Key android:codes="53" android:keyLabel="5"/> <Key android:codes="54" android:keyLabel="6"/> <Key android:codes="55" android:keyLabel="7"/> <Key android:codes="56" android:keyLabel="8"/> <Key android:codes="57" android:keyLabel="9"/> <Key android:codes="48" android:keyLabel="0" android:keyEdgeFlags="right"/> <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete" android:keyWidth="15%p" android:keyEdgeFlags="right" android:isRepeatable="true"/> </Row> <Row > <Key android:codes="113" android:keyLabel="Q" android:keyEdgeFlags="left"/> <Key android:codes="119" android:keyLabel="W"/> <Key android:codes="101" android:keyLabel="E"/> <Key android:codes="114" android:keyLabel="R"/> <Key android:codes="116" android:keyLabel="T"/> <Key android:codes="121" android:keyLabel="Y"/> <Key android:codes="117" android:keyLabel="U"/> <Key android:codes="105" android:keyLabel="I"/> <Key android:codes="111" android:keyLabel="O"/> <Key android:codes="112" android:keyLabel="P" android:keyEdgeFlags="right"/> </Row> <Row > <Key android:codes="97" android:keyLabel="A" android:horizontalGap="5%p" android:keyEdgeFlags="left"/> <Key android:codes="115" android:keyLabel="S"/> <Key android:codes="100" android:keyLabel="D"/> <Key android:codes="102" android:keyLabel="F"/> <Key android:codes="103" android:keyLabel="G"/> <Key android:codes="104" android:keyLabel="H"/> <Key android:codes="106" android:keyLabel="J"/> <Key android:codes="107" android:keyLabel="K"/> <Key android:codes="108" android:keyLabel="L" android:keyEdgeFlags="right"/> </Row> <Row android:keyHeight="8%p"> <Key android:codes="122" android:keyLabel="Z"/> <Key android:codes="120" android:keyLabel="X"/> <Key android:codes="99" android:keyLabel="C"/> <Key android:codes="118" android:keyLabel="V"/> <Key android:codes="98" android:keyLabel="B"/> <Key android:codes="110" android:keyLabel="N"/> <Key android:codes="109" android:keyLabel="M"/> <Key android:codes="46" android:keyLabel="." /> <Key android:codes="32" android:keyLabel="SPACE" android:keyWidth="20%p" android:isRepeatable="true"/> <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" android:keyWidth="20%p" android:keyEdgeFlags="right"/> </Row> </Keyboard> 

    Et je reçois le suivant

    Entrez la description de l'image ici

    Ignorez la première ligne, comment puis-je faire fonctionner le fond du clavier comme la première photo, je veux dire que je veux que mon clavier soit le premier avec tous les détails? Comment puis-je ajouter Gmail, Hotmail, … à la première rangée de mon clavier? Je souhaite également ajouter un son lorsque l'utilisateur clique sur une touche comme le clavier Android par défaut, comment puis-je le faire?

    One Solution collect form web for “Comment puis-je implémenter un clavier spécial”

    Créez un XML comme ceci pour le clavier:

     <?xml version="1.0" encoding="utf-8"?> <com.YourKeyboardView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/keyboard" style="@style/keyboard_1_style" android:layout_width="fill_parent" android:layout_height="wrap_content" > </com.YourKeyboardView> 

    Et le style est comme ci-dessous:

      <style name="keyboard_1_style"> <item name="android:keyBackground">@drawable/k1_selector</item> <item name="android:keyTextColor">#24B2E7</item> <item name="android:background">@android:color/white</item> <item name="android:keyPreviewLayout">@layout/k1_preview</item> </style> 

    Dans lequel

     <item name="android:keyBackground">@drawable/k1_selector</item> 

    Est utilisé pour définir l'arrière-plan pour la clé.

     <item name="android:keyTextColor">#24B2E7</item> 

    Est utilisé pour la couleur du texte de la clé.

     <item name="android:background">@android:color/white</item> 

    Est utilisé pour définir l'arrière-plan du clavier entier et

     <item name="android:keyPreviewLayout">@layout/k1_preview</item> 

    Est nécessaire de définir l'aperçu de la clé.

    Aperçu de la mise en page xml:

     <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="40sp" android:textColor="@android:color/white" android:gravity="center" android:background="@drawable/neon_candidate_middle_pressed"/> 

    Pour les espaces entre les touches, utilisez ceci .

    Et pour android:background="@drawable/neon_candidate_middle_pressed" c'est l'image d'arrière-plan que vous souhaitez afficher dans l'aperçu de la clé.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.