颜色选择器(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
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
    #include "../../../lv_examples.h"
    #if LV_USE_CPICKER

    void lv_ex_cpicker_1(void)
    {
            lv_obj_t * cpicker;

            cpicker = lv_cpicker_create(lv_scr_act(), NULL);
            lv_obj_set_size(cpicker, 200, 200);
            lv_obj_align(cpicker, NULL, LV_ALIGN_CENTER, 0, 0);
    }

    #endif

相关API

函数

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
    lv_obj_t * lv_cpicker_create(lv_obj_t * par,constlv_obj_t *copy)
    功能:创建一个颜色选择器对象
    返回:
    指向创建的颜色选择器的指针
    形参:
    par:指向对象的指针,它将是新colorpicker的父对象
    copy:指向颜色选择器对象的指针,如果不为NULL,则将从其复制新对象


    void lv_cpicker_set_type(lv_obj_t * cpicker,lv_cpicker_type_t type)
    功能:为选色器设置新类型
    形参:
    cpicker:指向颜色选择器对象的指针
    type:新型的颜色选择器(来自“ lv_cpicker_type_t”枚举)


    bool lv_cpicker_set_hue(lv_obj_t * cpicker,uint16_t hue)
    功能:设置颜色选择器的当前色相。
    返回:
    如果更改,则为true,否则为false
    形参:
    cpicker:指向colorpicker对象的指针
    hue:当前选择的色相[0..360]


    bool lv_cpicker_set_saturation(lv_obj_t * cpicker,uint8_t saturation)
    功能:设置颜色选择器的当前饱和度。
    返回:
    如果更改,则为true,否则为false
    形参:
    cpicker:指向colorpicker对象的指针
    saturation:当前选择的饱和度[0..100]


    bool lv_cpicker_set_value(lv_obj_t * cpicker,uint8_t val )
    功能:设置颜色选择器的当前值。
    返回:
    如果更改,则为true,否则为false
    形参:
    cpicker:指向colorpicker对象的指针
    val:当前选择的值[0..100]


    bool lv_cpicker_set_hsv(lv_obj_t * cpicker,lv_color_hsv_t hsv )
    功能:设置颜色选择器的当前hsv。
    返回:
    如果更改,则为true,否则为false
    形参:
    cpicker:指向colorpicker对象的指针
    hsv:当前选择的hsv


    bool lv_cpicker_set_color(lv_obj_t * cpicker,lv_color_t color)
    功能:设置颜色选择器的当前颜色。
    返回:
    如果更改,则为true,否则为false
    形参:
    cpicker:指向colorpicker对象的指针
    color:当前选择的颜色


    void lv_cpicker_set_color_mode(lv_obj_t * cpicker,lv_cpicker_color_mode_t mode)
    功能:设置当前的色彩模式。
    形参:
    cpicker:指向colorpicker对象的指针
    mode:色彩模式(色相/饱和度/色度)


    void lv_cpicker_set_color_mode_fixed(lv_obj_t * cpicker,bool fixed)
    功能:长时间按中心更改颜色模式时设置
    形参:
    cpicker:指向colorpicker对象的指针
    fixed:长按时无法更改色彩模式


    void lv_cpicker_set_knob_colored(lv_obj_t * cpicker,bool en )
    功能:使旋钮上色为当前颜色
    形参:
    cpicker:指向colorpicker对象的指针
    en:true:为旋钮着色;false:不给旋钮上色


    lv_cpicker_color_mode_t lv_cpicker_get_color_mode(lv_obj_t * cpicker )
    功能:获取当前的颜色模式。
    返回:
    色彩模式(色相/饱和度/色度)
    形参:
    cpicker:指向colorpicker对象的指针


    bool lv_cpicker_get_color_mode_fixed(lv_obj_t * cpicker )
    功能:长按中心时获取颜色模式是否更改
    返回:
    长按无法更改模式
    形参:
    cpicker:指向colorpicker对象的指针


    uint16_t lv_cpicker_get_hue(lv_obj_t * cpicker )
    功能:获取颜色选择器的当前色相。
    返回:
    当前选择的色相
    形参:
    cpicker:指向colorpicker对象的指针


    uint8_t lv_cpicker_get_saturation(lv_obj_t * cpicker )
    功能:获取选色器的当前饱和度。
    返回:
    当前选择的饱和度
    形参:
    cpicker:指向colorpicker对象的指针


    uint8_t lv_cpicker_get_value(lv_obj_t * cpicker )
    功能:获取颜色选择器的当前色相。
    返回:
    当前选择值
    形参:
    cpicker:指向colorpicker对象的指针


    lv_color_hsv_t lv_cpicker_get_hsv(lv_obj_t * cpicker )
    功能:获取选色器的当前选定的hsv。
    返回:
    当前选择的hsv
    形参:
    cpicker:指向colorpicker对象的指针


    lv_color_t lv_cpicker_get_color(lv_obj_t * cpicker )
    功能:获取颜色选择器的当前选定颜色。
    返回:
    当前选择的颜色
    形参:
    cpicker:指向colorpicker对象的指针


    bool lv_cpicker_get_knob_colored(lv_obj_t * cpicker )
    功能:旋钮是否着色为当前颜色
    返回:
    true:为旋钮着色;false:不给旋钮上色
    形参:
    cpicker:指向颜色选择器对象的指针