颜色选择器(lv_cpicker)

概述

顾名思义,拾色器允许选择颜色。可以依次选择颜色的色相,饱和度和值。

小部件有两种形式:圆形(圆盘)和矩形。

在这两种形式中,长按对象,颜色选择器将更改为颜色的下一个参数(色相,饱和度或值)。此外,双击将重置当前参数。

零件和样式

拾色器的主要部分称为 LV_CPICKER_PART_BG 。以圆形形式,它使用scale_width设置圆的宽度,并使用pad_inner在圆和内部预览圆之间填充。在矩形模式下,半径可以用于在矩形上应用半径。

该对象具有称为的虚拟部分 LV_CPICKER_PART_KNOB ,它是在当前值上绘制的矩形(或圆形)。它使用所有矩形(如样式属性和填充)使其大于圆形或矩形背景的宽度。

用法

类型

可以使用 lv_cpicker_set_type(cpicker, LV_CPICKER_TYPE_RECT/DISC) 更改颜色选择器的类型

设定颜色

可以使用 lv_cpicker_set_hue/saturation/value(cpicker, x) 手动设置colro,或者使用 lv_cpicker_set_hsv(cpicker, hsv)lv_cpicker_set_color(cpicker, rgb) 一次全部设置

色彩模式

可以使用 lv_cpicker_set_color_mode(cpicker, LV_CPICKER_COLOR_MODE_HUE/SATURATION/VALUE) 手动选择当前颜色。

使用 lv_cpicker_set_color_mode_fixed(cpicker, true) 固定颜色(不要长按更改)

旋钮颜色

lv_cpicker_set_knob_colored(cpicker, true) 使旋钮自动将所选颜色显示为背景色。

事件

通用事件 是按对象类型发送的。

了解有关 事件 的更多信息。

按键

  • LV_KEY_UP, LV_KEY_RIGHT 将当前参数的值增加1

  • LV_KEY_DOWN, LV_KEY_LEFT 将当前参数减1

  • LV_KEY_ENTER 长按将显示下一个模式。通过双击将重置当前参数。

进一步了解 按键

范例

光盘颜色选择器

http://photos.100ask.net/lvgl/04_widgets/11_cpicker/01_lv_ex_cpicker_1.png

光盘颜色选择器

上述效果的示例代码:

 1    #include "../../../lv_examples.h"
 2    #if LV_USE_CPICKER
 3
 4    void lv_ex_cpicker_1(void)
 5    {
 6            lv_obj_t * cpicker;
 7
 8            cpicker = lv_cpicker_create(lv_scr_act(), NULL);
 9            lv_obj_set_size(cpicker, 200, 200);
10            lv_obj_align(cpicker, NULL, LV_ALIGN_CENTER, 0, 0);
11    }
12
13    #endif

相关API

函数

  1    lv_obj_t * lv_cpicker_create(lv_obj_t * par,constlv_obj_t *copy)
  2    功能:创建一个颜色选择器对象
  3    返回:
  4    指向创建的颜色选择器的指针
  5    形参:
  6    par:指向对象的指针,它将是新colorpicker的父对象
  7    copy:指向颜色选择器对象的指针,如果不为NULL,则将从其复制新对象
  8
  9
 10    void lv_cpicker_set_type(lv_obj_t * cpicker,lv_cpicker_type_t type)
 11    功能:为选色器设置新类型
 12    形参:
 13    cpicker:指向颜色选择器对象的指针
 14    type:新型的颜色选择器(来自“ lv_cpicker_type_t”枚举)
 15
 16
 17    bool lv_cpicker_set_hue(lv_obj_t * cpicker,uint16_t hue)
 18    功能:设置颜色选择器的当前色相。
 19    返回:
 20    如果更改,则为true,否则为false
 21    形参:
 22    cpicker:指向colorpicker对象的指针
 23    hue:当前选择的色相[0..360]
 24
 25
 26    bool lv_cpicker_set_saturation(lv_obj_t * cpicker,uint8_t saturation)
 27    功能:设置颜色选择器的当前饱和度。
 28    返回:
 29    如果更改,则为true,否则为false
 30    形参:
 31    cpicker:指向colorpicker对象的指针
 32    saturation:当前选择的饱和度[0..100]
 33
 34
 35    bool lv_cpicker_set_value(lv_obj_t * cpicker,uint8_t val )
 36    功能:设置颜色选择器的当前值。
 37    返回:
 38    如果更改,则为true,否则为false
 39    形参:
 40    cpicker:指向colorpicker对象的指针
 41    val:当前选择的值[0..100]
 42
 43
 44    bool lv_cpicker_set_hsv(lv_obj_t * cpicker,lv_color_hsv_t hsv )
 45    功能:设置颜色选择器的当前hsv。
 46    返回:
 47    如果更改,则为true,否则为false
 48    形参:
 49    cpicker:指向colorpicker对象的指针
 50    hsv:当前选择的hsv
 51
 52
 53    bool lv_cpicker_set_color(lv_obj_t * cpicker,lv_color_t color)
 54    功能:设置颜色选择器的当前颜色。
 55    返回:
 56    如果更改,则为true,否则为false
 57    形参:
 58    cpicker:指向colorpicker对象的指针
 59    color:当前选择的颜色
 60
 61
 62    void lv_cpicker_set_color_mode(lv_obj_t * cpicker,lv_cpicker_color_mode_t mode)
 63    功能:设置当前的色彩模式。
 64    形参:
 65    cpicker:指向colorpicker对象的指针
 66    mode:色彩模式(色相/饱和度/色度)
 67
 68
 69    void lv_cpicker_set_color_mode_fixed(lv_obj_t * cpicker,bool fixed)
 70    功能:长时间按中心更改颜色模式时设置
 71    形参:
 72    cpicker:指向colorpicker对象的指针
 73    fixed:长按时无法更改色彩模式
 74
 75
 76    void lv_cpicker_set_knob_colored(lv_obj_t * cpicker,bool en )
 77    功能:使旋钮上色为当前颜色
 78    形参:
 79    cpicker:指向colorpicker对象的指针
 80    en:true:为旋钮着色;false:不给旋钮上色
 81
 82
 83    lv_cpicker_color_mode_t lv_cpicker_get_color_mode(lv_obj_t * cpicker )
 84    功能:获取当前的颜色模式。
 85    返回:
 86    色彩模式(色相/饱和度/色度)
 87    形参:
 88    cpicker:指向colorpicker对象的指针
 89
 90
 91    bool lv_cpicker_get_color_mode_fixed(lv_obj_t * cpicker )
 92    功能:长按中心时获取颜色模式是否更改
 93    返回:
 94    长按无法更改模式
 95    形参:
 96    cpicker:指向colorpicker对象的指针
 97
 98
 99    uint16_t lv_cpicker_get_hue(lv_obj_t * cpicker )
100    功能:获取颜色选择器的当前色相。
101    返回:
102    当前选择的色相
103    形参:
104    cpicker:指向colorpicker对象的指针
105
106
107    uint8_t lv_cpicker_get_saturation(lv_obj_t * cpicker )
108    功能:获取选色器的当前饱和度。
109    返回:
110    当前选择的饱和度
111    形参:
112    cpicker:指向colorpicker对象的指针
113
114
115    uint8_t lv_cpicker_get_value(lv_obj_t * cpicker )
116    功能:获取颜色选择器的当前色相。
117    返回:
118    当前选择值
119    形参:
120    cpicker:指向colorpicker对象的指针
121
122
123    lv_color_hsv_t lv_cpicker_get_hsv(lv_obj_t * cpicker )
124    功能:获取选色器的当前选定的hsv。
125    返回:
126    当前选择的hsv
127    形参:
128    cpicker:指向colorpicker对象的指针
129
130
131    lv_color_t lv_cpicker_get_color(lv_obj_t * cpicker )
132    功能:获取颜色选择器的当前选定颜色。
133    返回:
134    当前选择的颜色
135    形参:
136    cpicker:指向colorpicker对象的指针
137
138
139    bool lv_cpicker_get_knob_colored(lv_obj_t * cpicker )
140    功能:旋钮是否着色为当前颜色
141    返回:
142    true:为旋钮着色;false:不给旋钮上色
143    形参:
144    cpicker:指向颜色选择器对象的指针