颜色选择器(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 长按将显示下一个模式。通过双击将重置当前参数。
进一步了解 按键 。
范例¶
光盘颜色选择器¶
上述效果的示例代码:
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:指向颜色选择器对象的指针