エンベデッドGUILVGL「スピナーリングローダーコントロール」の紹介

1.LVGLGUIリングローダー制御の概念

オブジェクトは境界上の回転の弧です

2.LVGLGUIリングローダーウィジェットとスタイル

スピナーは次の部品を使用します。

  • LV_SPINNER_PART_BG:主要部分
  • LV_SPINNER_PART_INDIC:回転アーク(仮想パーツ)

ウィジェットとスタイルはArcと同じように機能します。詳細な手順については、ドキュメントをお読みください。

3.LVGLGUIリングローダー制御の使用

1.弧長

この関数を使用して、回転バーの円弧である回転円弧lv_spinner_set_arc_length(spinner、deg)を設定し、それを確認するコードを記述します。

void lvgl_spinner_arc_length_test(void)
{
    /*Create a Preloader object*/
    lv_obj_t* preload1 = lv_spinner_create(lv_scr_act(), NULL);
    lv_obj_set_size(preload1, 100, 100);
    lv_obj_align(preload1, NULL, LV_ALIGN_CENTER, 0, -100);
    
    /*Create a Preloader object*/
    lv_obj_t* preload2 = lv_spinner_create(lv_scr_act(), NULL);
    lv_obj_set_size(preload2, 100, 100);
    lv_obj_align(preload2, NULL, LV_ALIGN_CENTER, 0, 100);
    lv_spinner_set_arc_length(preload2,270);
}

2.回転速度

この関数を使用して回転速度を設定しますlv_spinner_set_spin_time(preload、time_ms)、2番目のパラメーターはxxミリ秒を設定して1回回転させ、検証する関数を記述します

私は検証するプログラムを書き、5msのターンアラウンドを書き、あなたを眩惑させます!ねえ、GIFはフレームを落としたので、まだ使うことはできません


void lvgl_spinner_spin_speed_test(void)
{
    /*Create a Preloader object*/
    lv_obj_t* preload1 = lv_spinner_create(lv_scr_act(), NULL);
    lv_obj_set_size(preload1, 100, 100);
    lv_obj_align(preload1, NULL, LV_ALIGN_CENTER, 0, -100);

    /*Create a Preloader object*/
    lv_obj_t* preload2 = lv_spinner_create(lv_scr_act(), NULL);
    lv_obj_set_size(preload2, 100, 100);
    lv_obj_align(preload2, NULL, LV_ALIGN_CENTER, 0, 100);
    lv_spinner_set_spin_time(preload2, 50);
}

3.スピンタイプ

より多くの回転タイプから選択できます。

  • LV_SPINNER_TYPE_SPINNING_ARCスピンアーク、上部で減速
  • LV_SPINNER_TYPE_FILLSPIN_ARCは円弧を回転させ、上部で速度を落としますが、円弧を伸ばします
  •  LV_SPINNER_TYPE_CONSTANT_ARCは、アークを一定の速度で回転させます

この関数を使用して、lv_spinner_set_type(preload、LV_SPINNER_TYPE _...)を設定します

プログラムに参加し、手配する

void lvgl_spinner_spin_type_test(void)
{
    /*Create a Preloader object*/
    lv_obj_t* preload1 = lv_spinner_create(lv_scr_act(), NULL);
    lv_obj_set_size(preload1, 100, 100);
    lv_obj_align(preload1, NULL, LV_ALIGN_CENTER, -100, 0);
    lv_spinner_set_type(preload1, LV_SPINNER_TYPE_SPINNING_ARC);

    /*Create a Preloader object*/
    lv_obj_t* preload2 = lv_spinner_create(lv_scr_act(), NULL);
    lv_obj_set_size(preload2, 100, 100);
    lv_obj_align(preload2, NULL, LV_ALIGN_CENTER, 0, 0);
    lv_spinner_set_type(preload2, LV_SPINNER_TYPE_FILLSPIN_ARC);

    /*Create a Preloader object*/
    lv_obj_t* preload3 = lv_spinner_create(lv_scr_act(), NULL);
    lv_obj_set_size(preload3, 100, 100);
    lv_obj_align(preload3, NULL, LV_ALIGN_CENTER, 100, 0);
    lv_spinner_set_type(preload3, LV_SPINNER_TYPE_CONSTANT_ARC);
}

4.スピン方向

この関数lv_spinner_set_dir(preload、LV_SPINNER_DIR_FORWARD / BACKWARD)を使用して、回転方向を設定します

void lvgl_spinner_spin_dir_test(void)
{
    /*Create a Preloader object*/
    lv_obj_t* preload1 = lv_spinner_create(lv_scr_act(), NULL);
    lv_obj_set_size(preload1, 100, 100);
    lv_obj_align(preload1, NULL, LV_ALIGN_CENTER, -100, 0);
    lv_spinner_set_dir(preload1, LV_SPINNER_DIR_FORWARD);

    /*Create a Preloader object*/
    lv_obj_t* preload2 = lv_spinner_create(lv_scr_act(), NULL);
    lv_obj_set_size(preload2, 100, 100);
    lv_obj_align(preload2, NULL, LV_ALIGN_CENTER, 0, 0);
    lv_spinner_set_dir(preload2, LV_SPINNER_DIR_BACKWARD);
}

さて、それは終わった、もっとエキサイティングな突っ込みを続ける↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

おすすめ

転載: blog.csdn.net/XiaoXiaoPengBo/article/details/114064631
おすすめ