-
目的
學習並實現一個類似於進度條的“棒”模型。
-
功能和函數介紹
-
功能介紹
bar在littlevGL中由兩部分組成,一個背景,一個是前面的指示跡象。用戶可以通過其顯示一個任務的執行進度。
要實現一個bar,需要能夠創造它的對象,描述其在父類顯示的位置,它的尺寸大小,背景和指示跡象的風格,指示跡象滑動範圍,設定其值。同時它有個特殊的功能,即能夠配置爲動態按照指定的時間逐步增加顯示。
-
函數介紹
1、bar創立
lv_obj_t *lv_bar_create(lv_obj_t *par, constlv_obj_t *copy)
功能:爲在父類中,創建一個bar變量,同時將copy對象的屬性拷貝到新創建bar中返回
par:父類;
copy: 被參考拷貝bar對象;
2、bar值和動態時間和獲取
void lv_bar_set_value(lv_obj_t *bar, int16_t value, lv_anim_enable_tanim)//設置
功能:配置bar的初始值value,或者當anim爲true時,當前值爲一個動態值,結合void lv_bar_set_anim_time(lv_obj_t *bar, uint16_t anim_time)函數使用,此函數設定動態時間,單位ms;
bar:要操作的bar;
value: 被設置的bar值;
anim:如果爲true時,當前bar狀態隨着配置動態時間變化,如果是false,則爲value
int16_t lv_bar_get_value(constlv_obj_t *bar)//獲取
void lv_bar_set_anim_time(lv_obj_t *bar, uint16_t anim_time)//設置動態時間
uint16_t lv_bar_get_anim_time(lv_obj_t *bar)//獲取動態時間
3、bar 值的範圍設置和獲取
int16_t lv_bar_get_min_value(constlv_obj_t *bar)//獲取bar可滑動範圍的最小值
int16_t lv_bar_get_max_value(constlv_obj_t *bar)//獲取最大值
void lv_bar_set_range(lv_obj_t *bar, int16_t min, int16_t max)//配置範圍,當沒有配置時,默認爲0-100
4、bar 風格的設置和獲取
void lv_bar_set_style(lv_obj_t *bar, lv_bar_style_ttype, const lv_style_t *style)
cost lv_style_t *lv_bar_get_style(constlv_obj_t *bar, lv_bar_style_ttype)
-
設計流程和源碼
設計一個動態的bar。則需要先創建bar對象,配置顯示位置,其大小和動態時間,使能動態功能,同時可以設置其style。
void DrawBar()
{
//1. 創建bar
lv_obj_t * bar1 = lv_bar_create(lv_scr_act(), NULL);
//2. 設置當前bar外觀大小尺寸
lv_obj_set_size(bar1, 200, 30);
//3 .設置其在父類中爲中心對齊
lv_obj_align(bar1, NULL, LV_ALIGN_CENTER, 0, 0);
//4. 設置其爲1s變化一次
lv_bar_set_anim_time(bar1, 1000);
//5.設置其初始值爲100,並可動態變化
lv_bar_set_value(bar1, 100, LV_ANIM_ON);
}
同前面一樣,在main函數調用此函數。
總結
會出現一個類似進度條的bar。