2013-02-02 24 views
5

アンドロイドのインプットメソッドエディタを書く際に、アンドロイド:keyLabelを変更する以外に、入力としていくつかのユニコード文字を受け入れるようにするためには何が必要なのですか?(例えば、マラヤラム文字を入力としてマップする:0D00 - 0DFF)ユニコードを受け入れるAndroid IME

<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

は、すべてのソリューションをお探しでしたか? – Rajkiran

答えて

2

私は、これは古い質問ですけど、私はそう、私はそれを見て他の人のために、ここで1を提供します、それを必要なときに、私は答えを見つけることができます。 documentationによれば

: Keyboard.Keyの(android.inputmethodservice.Keyboard.Key)アンドロイド:コードXML属性は、次のとおり

Unicode値またはカンマ区切りこのキー出力します。

'\;'を使用して文字列値にすることができます。ユニコード文字の場合、 '\ n'や '\ uxxxx'などの文字をエスケープします。 「100」などの整数値の場合があります。

「\;」を使用して動作させる方法を理解できませんでした。しかし、あなたはどちらか:

又は

  • ための3333(2)の代わりに用いてエスケープの '\;'例:0xプレフィックスを指定します。文字の0x0D05

例അマラヤーラム語の手紙A U + 0D05:

(1)

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

(2)

<Key android:codes="0x0D05" android:keyLabel="\u0D05"/> 
関連する問題