首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >接受unicode的Android

接受unicode的Android
EN

Stack Overflow用户
提问于 2013-02-02 14:33:50
回答 1查看 1.2K关注 0票数 5

在为android编写输入法编辑器时,我需要做些什么才能使它接受某些unicode字符作为输入,而不是更改android:keyLabel (例如,让我将马拉亚拉姆字符映射为输入:0D00-0DFF)

代码语言:javascript
运行
复制
  <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>
EN

回答 1

Stack Overflow用户

发布于 2017-05-03 21:49:40

我知道这是个老生常谈的问题,但在我需要的时候我还没有找到答案,所以我会在这里为其他人提供一个答案。

根据文档:Keyboard.Key的(android.inputmethodservice.Keyboard.Key) android:codes xml属性是:

此键输出的unicode值或逗号分隔的值。 可以是字符串值,使用‘\’来转义unicode字符的'\n‘或'\uxxxx’等字符;可以是整数值,如"100“。

我不知道如何使用“\”,但您可以:

  • (1)使用十进制unicode值,您可以在这里查找该值,例如:http://unicodelookup.com/#%090xD05/1,例如,用于U+0D05的3333

  • (2)不要用'\;‘转义,而要指定0x前缀,例如0x0D05

字符അ马拉亚兰字母Aഅ的示例:

(1)

代码语言:javascript
运行
复制
<Key android:codes="3333" android:keyLabel="\u0D05"/>

(2)

代码语言:javascript
运行
复制
<Key android:codes="0x0D05" android:keyLabel="\u0D05"/>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14662935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档