硬汉嵌入式论坛

 找回密码
 立即注册
查看: 775|回复: 3
收起左侧

[emWin] 环形进度条运行时候,操作UI比较卡。

[复制链接]

100

主题

94

回帖

394

积分

高级会员

积分
394
发表于 2024-5-22 16:37:30 | 显示全部楼层 |阅读模式


                case WM_PAINT:
                {
                        DrawWheel((g_iNobVal%361), 300, 430,50);
                        break;
                }



                case WM_TIMER:
               {
                        WM_InvalidateArea(&rect);
               }





void DrawWheel(int knobVal,int xoff,int yoff,int r)
{
    int  step;
    int  ArcStart = 360 - KNOB_STEP;
    int  ArcEnd   = 360;
    int  i = 0;
       
        step = knobVal / KNOB_STEP;                 //算出需要画内部弧形的个数

    GUI_SetFont(&GUI_Font13B_ASCII);

    GUI_AA_EnableHiRes();                         //开高分辨率模式
    GUI_AA_SetFactor(AA_FACT);                //抗锯齿因子,关闭抗锯齿可减少卡顿

    /*画圆环*/
    GUI_SetPenSize(16);                         //使用弧线画环,可以调整画笔实现弧线粗细
    GUI_SetColor(GUI_GRAY);

    GUI_AA_DrawArc(xoff*AA_FACT, yoff*AA_FACT, r*AA_FACT, r*AA_FACT, 0, 360);

    /*根据旋钮值画内部弧形*/
    GUI_SetPenSize(16);       
    GUI_SetColor(GUI_BLUE);

    for(; i<=step-1; i++)
    {   //增大KNOB_STEP可减少画弧形的次数,可减少卡顿,但滑块变化精度变低
        GUI_AA_DrawArc(xoff*AA_FACT, yoff*AA_FACT, r*AA_FACT, r*AA_FACT,  ArcStart, ArcEnd);        
        ArcEnd = ArcStart; //上一个弧形的初角度成为下一个弧形的末角度
        ArcStart = ArcStart - KNOB_STEP;//下一个弧形的初角度
    }

    GUI_AA_DisableHiRes();//关闭高分辨率
}


如上所示,200ms调用一下DrawWheel,实现环形进度条,这时候,操作UI会很卡,比如软键盘输入文字,DROPDOWN选择,会很卡。
如何优化?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115887
QQ
发表于 2024-5-23 08:59:15 | 显示全部楼层
使用6.x已经自带了
回复

使用道具 举报

100

主题

94

回帖

394

积分

高级会员

积分
394
 楼主| 发表于 2024-5-23 11:22:49 | 显示全部楼层
eric2013 发表于 2024-5-23 08:59
使用6.x已经自带了

硬汉大佬,现在切过去,有点麻烦。我想知道我这种方式为啥会导致卡,怎么让它不卡?能给点建议么?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115887
QQ
发表于 2024-5-24 14:57:55 | 显示全部楼层
wen 发表于 2024-5-23 11:22
硬汉大佬,现在切过去,有点麻烦。我想知道我这种方式为啥会导致卡,怎么让它不卡?能给点建议么?

有没有可以直接在模拟器上可以直接测试的完整代码,我试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-25 09:34 , Processed in 0.256743 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表