LVGL开发|lv_lib_100ask之lvgl中文输入(lv_100ask_pinyin_ime )-LVGL中文输入

Posted 挨踢民工biubiu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVGL开发|lv_lib_100ask之lvgl中文输入(lv_100ask_pinyin_ime )-LVGL中文输入相关的知识,希望对你有一定的参考价值。

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

代码

lvgl视频教程

百问网LVGL(v8)系列课程(韦东山·监制) 教程基于lvgl v8.2版本,课程适配多个平台、多款板子

百问网LVGL(v8)视频课程(韦东山·监制) 教程基于lvgl v8.2版本,课程适配多个平台、多款板子!视频学习地址:https://www.bilibili.com/video/BV1Ya411r7K2

视频教程配套资料

相关学习资源

以上是关于LVGL开发|lv_lib_100ask之lvgl中文输入(lv_100ask_pinyin_ime )-LVGL中文输入的主要内容,如果未能解决你的问题,请参考以下文章

LVGL开发 | lv_lib_100ask之lvgl计算器(lv_100ask_calc)-接口简单使用便捷

LVGL开发 | lv_lib_100ask之lvgl计算器(lv_100ask_calc)-接口简单使用便捷

LVGL开发 | lv_lib_100ask之lvgl页面管理器(lv_100ask_page_manager)-页面管理简单方便

LVGL开发 | lv_lib_100ask之lvgl页面管理器(lv_100ask_page_manager)-页面管理简单方便

LVGL开发 | lv_lib_100ask之lvgl数字对拼图小游戏(lv_100ask_memory_game)-接口简单使用便捷

LVGL开发 | lv_lib_100ask之lvgl数字对拼图小游戏(lv_100ask_memory_game)-接口简单使用便捷