演示视频:https://www.bilibili.com/video/BV1DY41147xX
介绍
lv_100ask_pinyin_ime
是在 lv_keyboard 的基础上编写的一个自定义部件(创建接口为: lv_100ask_pinyin_ime_create(lv_obj_t *parent));
),它和 lv_keyboard 没有什么区别,只是增加了支持中文拼音输入法的功能。
所以将其称为:支持中文拼音输入法的LVGL键盘(lv_keyboard)部件增强插件。
正常来说,只要是lvgl能运行的环境 lv_100ask_pinyin_ime
也能够运行!影响因素主要有两点:使用的字库文件大小和使用的词库大小。
lv_100ask_pinyin_ime
使用起来非常简单,后续自定义拓展功能也很方便,更多功能敬请期待。
lv_100ask_pinyin_ime特性:
- 资源占用低
- 支持自定义词库
- 支持自定义样式(候选栏、键盘)
- 支持简拼
- 支持双拼(TODO)
- 可加载词库文件(TODO)
- 自动更新词库(TODO)
- 九宫格模式(TODO)
使用方法
参考 lv_lib_100ask/test/lv_100ask_pinyin_ime_test 的示例。
自定义词库
如果不想使用内置的拼音词库,可以使用自定义的词库。
或者觉得内置的拼音词库消耗的内存比较大,也可以使用自定义的词库。
自定义词库非常简单。
- 首先,在
lv_lib_100ask_conf.h
中将LV_100ASK_PINYIN_IME_ZH_CN_PIN_YIN_DICT
设置为0
- 然后,按照下面这个格式编写词库。
词库格式
必须按照下面的格式,编写自己的词库:
lv_100ask_pinyin_dict_t your_pinyin_dict[] = {
{ "a", "啊阿呵吖" },
{ "ai", "埃挨哎唉哀皑蔼矮碍爱隘癌艾" },
{ "ba", "芭捌叭吧笆八疤巴拔跋靶把坝霸罢爸扒耙" },
{ "cai", "猜裁材才财睬踩采彩菜蔡" },
/* ...... */
{ "zuo", "昨左佐做作坐座撮琢柞"},
{NULL, NULL}
最后一项必须要以 ‘{NULL, NULL}’ 结尾,否则将无法正常工作。
应用新词库
按照上面的词库格式编写好词库之后,只需要调用这个函数即可设置使用你的词库:
lv_obj_t * pinyin_ime = lv_100ask_pinyin_ime_create(lv_scr_act());
lv_100ask_pinyin_ime_set_dict(pinyin_ime, your_pinyin_dict);
注意: 必须在设置好词库之后再使用 lv_100ask_pinyin_ime
模拟器体验
基于codeblocks 20.03+windows10编译:lv_100ask_pinyin_ime_beta-v2.0
代码
github: lv_lib_100ask/src/lv_100ask_pinyin_ime at master · 100askTeam/lv_lib_100ask · GitHub
gitee: lv_lib_100ask: lv_lib_100ask是基于lvgl库的各种开箱即用的方案参考或对lvgl库各种组件的增强接口。 - Gitee.com