目前只支持中文输入,如果有多语言输入需求,请找专业的输入法公司合作。
这里提供的输入引擎,主要用作参考,请自行优化和裁剪。
如果不启用输入法,可以不用加任何输入法引擎。
- 文件 input_engine_null.c
- 宏:WITH_IME_NULL
如果不需要中文输入法,但又需要软键盘,请启用本引擎。
- 文件:input_engine_pinyin.cpp
- 宏:WITH_IME_PINYIN
如果需要拼音输入法,推荐使用本引擎。
- 文件:input_engine_spinyin.c
- 宏:WITH_IME_SPINYIN
优点是简单,如果不想用 Goole 拼音输入引擎,可以使用本引擎。
- 文件:input_engine_t9.c
- 宏:WITH_IME_T9
- 软键盘:
- 缺省软键盘:demos/assets/default/raw/ui/kb_default_t9.xml
- ascii 软键盘:demos/assets/default/raw/ui/kb_ascii_t9.xml
如果需要 T9 输入法,带有触摸屏,请使用本引擎。
- 文件:input_engine_t9ext.c
- 宏:WITH_IME_T9EXT
- 软键盘:
- 缺省软键盘:demos/assets/default/raw/ui/kb_default_t9ext.xml
如果需要 T9 输入法,而且没有触摸屏,使用外部硬键盘,请使用本引擎。
在PC上模拟测试时,可以用ESC键切换输入模式,在嵌入式平台可以重定义宏SWITCH_INPUT_MODE_KEY来指定切换的按键。
- t9_en_us.inc 由 tools/ime_gen/to_t9_en.js 根据 english_words.txt 生成。
- pinyin_table.inc 由 tools/ime_gen/to_pinyin.js 根据 chinese_words.txt 生成。
- t9_zh_cn.inc 由 tools/ime_gen/to_t9_zh.js 根据 chinese_words.txt 生成。
- t9ext_zh_cn.inc 由 tools/ime_gen/to_t9ext_zh.js 根据 chinese_words.txt 生成。
如果需要裁剪,请编辑相应的输入文件,并重新生成。
编辑 awtk_config.py 中的 INPUT_ENGINE,可以选择不同的输入法引擎。
#INPUT_ENGINE='null'
#INPUT_ENGINE='spinyin'
#INPUT_ENGINE='t9'
#INPUT_ENGINE='t9ext'
INPUT_ENGINE='pinyin'
新版无需指定软键盘(当然也可以指定),由src/input_methods/input_method_default.inc中定义的宏决定。
#if !defined(STR_DEFAULT_KEYBOARD)
#if defined(WITH_IME_T9)
#define STR_DEFAULT_KEYBOARD "kb_default_t9"
#elif defined(WITH_IME_T9EXT)
#define STR_DEFAULT_KEYBOARD "kb_default_t9ext"
#else
#define STR_DEFAULT_KEYBOARD "kb_default"
#endif
#endif/*STR_DEFAULT_KEYBOARD*/
#if !defined(STR_ASCII_KEYBOARD)
#if defined(WITH_IME_T9)
#define STR_ASCII_KEYBOARD "kb_ascii_t9"
#elif defined(WITH_IME_T9EXT)
#define STR_ASCII_KEYBOARD "kb_default_t9ext"
#else
#define STR_ASCII_KEYBOARD "kb_ascii"
#endif
#endif/*STR_ASCII_KEYBOARD*/
软键盘必须和输入法引擎配套使用 (T9/T9EXT),可以替换默认的软键盘 UI 文件,也可以在编辑器的属性中指定软键盘。
如:
<window anim_hint="htranslate" >
<edit x="10" y="10" w="-20" h="30" keyboard="kb_default_t9ext" focused="true" />
<edit x="10" y="50" w="-20" h="30" keyboard="kb_default_t9ext" focused="true" />
<mledit x="10" y="90" w="-20" h="80" keyboard="kb_default_t9ext" focused="true" />
</window>