2013-02-02 7 views
5

Während ich einen Eingabemethodeneditor für Android schreibe, was muss ich tun, um die Map Unicode-Zeichen als Eingabe zu akzeptieren, außer der Änderung von android: keyLabel (um beispielsweise Malayalam als Eingabe zu verwenden) : 0D00 - 0DFF)Android IME, die Unicode akzeptieren

<Keyboard xmlns:android="http://schemas.android.com/apk/res/android" 
     android:horizontalGap="0px" 
     android:keyHeight="@dimen/key_height" 
     android:keyWidth="10%p" 
     android:verticalGap="0px" > 

     <Row> 
      <Key 
       android:codes="45" 
       android:keyEdgeFlags="left" 
       android:keyLabel="q" 
       android:popupCharacters="@string/hello" 
       android:popupKeyboard="@xml/qwerty"/> 
      <Key 
       android:codes="51" 
       android:keyLabel="w" /> 
      <Key 
       android:codes="33" 
       android:keyLabel="e" /> 
      <Key 
       android:codes="46" 
       android:keyLabel="r" /> 
      <Key 
       android:codes="48" 
       android:keyLabel="t" /> 
      <Key 
       android:codes="53" 
       android:keyLabel="y" /> 
      <Key 
       android:codes="49" 
       android:keyLabel="u" /> 
      <Key 
       android:codes="37" 
       android:keyLabel="i" /> 
      <Key 
       android:codes="43" 
       android:keyLabel="o" /> 
      <Key 
       android:codes="44" 
       android:keyEdgeFlags="right" 
       android:keyLabel="p" /> 
     </Row> 
     <Row> 
      <Key 
       android:codes="29" 
       android:horizontalGap="5%p" 
       android:keyEdgeFlags="left" 
       android:keyLabel="a" /> 
      <Key 
       android:codes="47" 
       android:keyLabel="s" /> 
      <Key 
       android:codes="32" 
       android:keyLabel="d" /> 
      <Key 
       android:codes="34" 
       android:keyLabel="f" /> 
      <Key 
       android:codes="35" 
       android:keyLabel="g" /> 
      <Key 
       android:codes="36" 
       android:keyLabel="h" /> 

      <Key 
       android:codes="38" 
       android:keyLabel="J" /> 
      <Key 
       android:codes="49" 
       android:keyLabel="K" /> 

      <Key 
       android:codes="40" 
       android:keyEdgeFlags="right" 
       android:keyLabel="l" /> 
     </Row> 
     <Row> 
      <Key 
       android:codes="60"    
       android:keyEdgeFlags="left" 
       android:keyIcon="@drawable/sym_keyboard_shift" 
       android:iconPreview="@drawable/sym_keyboard_shift" 
       android:isModifier="true" 
       android:isSticky="true" 
       android:keyWidth="15%p" 
       android:keyLabel="shift" /> 
      <Key 
       android:codes="54" 
       android:keyLabel="z" /> 
      <Key 
       android:codes="52" 
       android:keyLabel="x" /> 
      <Key 
       android:codes="31" 
       android:keyLabel="c" /> 
      <Key 
       android:codes="50" 
       android:keyLabel="v" /> 
      <Key 
       android:codes="30" 
       android:keyLabel="b" /> 
      <Key 
       android:codes="42" 
       android:keyLabel="n" /> 
      <Key 
       android:codes="41" 
       android:keyLabel="m" /> 
      <Key 
       android:codes="67" 
       android:isRepeatable="true" 
       android:keyEdgeFlags="right" 
       android:keyIcon="@drawable/sym_keyboard_delete" 
       android:keyWidth="15%p" /> 
     </Row> 
     <Row android:rowEdgeFlags="bottom" > 
      <Key 
       android:codes="-3" 
       android:keyEdgeFlags="left" 
       android:keyIcon="@drawable/sym_keyboard_done" 
       android:keyWidth="20%p" /> 
      <Key 
       android:codes="-2" 
       android:keyLabel="123" 
       android:keyWidth="15%p" /> 
      <Key 
       android:codes="62" 
       android:isRepeatable="true" 
       android:keyIcon="@drawable/sym_keyboard_space" 
       android:keyWidth="30%p" /> 
      <Key 
       android:codes="46,55" 
       android:keyLabel=". ," 
       android:keyWidth="15%p" /> 
      <Key 
       android:codes="10" 
       android:keyEdgeFlags="right" 
       android:keyIcon="@drawable/sym_keyboard_return" 
       android:keyWidth="20%p" /> 
     </Row> 

    </Keyboard> 
+0

Sie eine Lösung gefunden? – Rajkiran

Antwort

2

ich weiß, dass dies eine alte Frage, aber ich habe die Antwort nicht gefunden, wenn ich es brauche, damit ich einen hier für andere zur Verfügung stellen, die für sie auch aussehen mag.

Nach der documentation: der Keyboard.Key des (android.inputmethodservice.Keyboard.Key) android: Codes XML-Attribut ist:

den Unicode-Wert oder durch Kommata getrennte Werte, die diese Schlüssel Ausgänge.

Kann ein Zeichenfolgenwert sein, der '\;' Zeichen wie '\ n' oder '\ uxxxx' für ein Unicode-Zeichen zu entkommen; Kann ein ganzzahliger Wert sein, z. B. "100", .

Ich konnte nicht herausfinden, wie man es mit '\;' aber können Sie entweder:

oder

  • (2) anstelle des entweichenden mit '\;' Geben Sie das Präfix 0x an, z. 0x0D05

Beispiele für den Charakter അ Malayalam Buchstabe A U + 0D05:

(1)

<Key android:codes="3333" android:keyLabel="\u0D05"/> 

(2)

<Key android:codes="0x0D05" android:keyLabel="\u0D05"/> 
Verwandte Themen