LVGL拼音输入法插件(lv_100ask_pinyin_ime)

lv_100ask_pinyin_ime

演示视频: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