Akh*_*lan 5 keyboard unicode android ime
在为android编写输入法编辑器时,为了使其映射,我需要做什么才能接受一些unicode字符作为输入而不是更改android:keyLabel(例如让我将马拉雅拉姆语字符映射为输入:0D00 - 0DFF)
<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>
Run Code Online (Sandbox Code Playgroud)
我知道这是一个老问题,但是当我需要它时我还没有找到答案,所以我将在这里为其他可能寻找它的人提供一个答案。
\n\n根据文档:\nKeyboard.Key\ 的 (android.inputmethodservice.Keyboard.Key) android:codes xml 属性是:
\n\n\n\n\n该键输出的 unicode 值或逗号分隔值。
\n\n可能是字符串值,使用\'\\;\'转义字符,例如\n \'\\n\'或\'\\uxxxx\'表示unicode字符;可以是整数值,例如“100”。
\n
我不知道如何使用 \'\\;\' 来使其工作,但你可以:
\n\n或者
\n\n字符 \xe0\xb4\x85 马拉雅拉姆语字母 A U+0D05 的示例:
\n\n(1)
\n\n<Key android:codes="3333" android:keyLabel="\\u0D05"/>\nRun Code Online (Sandbox Code Playgroud)\n\n(2)
\n\n<Key android:codes="0x0D05" android:keyLabel="\\u0D05"/>\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
880 次 |
| 最近记录: |