0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式GUI“美容”小技巧:讓小身板的MCU,也可以有個(gè)俊模樣的界面設(shè)計(jì)!

NXP客棧 ? 來源:未知 ? 2023-05-19 10:55 ? 次閱讀

在本文中,小編用“小身板”和“俊模樣”來指代一個(gè)帶有圖形用戶界面的系統(tǒng)的兩個(gè)方面。“小身板”是指相對(duì)有限的MCU資源,例如:相對(duì)較低的主頻、相對(duì)較少的存儲(chǔ)資源、沒有專門的LCD顯示控制器、較低的顯示接口速度等等;而“俊模樣”是指對(duì)用戶友好,漂亮且富于吸引力的圖形界面,就如同男生的帥、女生的美。

男生的帥和女生的美,除了與天生的基因有關(guān),外在的修飾也同樣必不可少。俗話說,人靠衣裳馬靠鞍,衣裳和鞍都是外部的修飾,都是實(shí)現(xiàn)美好事物所需要的資源。

由此及彼,一個(gè)“俊模樣”的GUI設(shè)計(jì),同樣對(duì)資源有比較高的要求。這些資源包括主頻、Flash和RAM以及美工設(shè)計(jì)等等。那么,是不是“小身板”就不能有“俊模樣”呢?

不是的!如同一個(gè)優(yōu)秀的化妝師可以用卓越的手段實(shí)現(xiàn)美,嵌入式工程師也可以通過各種手段進(jìn)行資源優(yōu)化,力爭(zhēng)讓“小身板”的MCU也能實(shí)現(xiàn)“俊模樣”的界面設(shè)計(jì)。

對(duì)GUI設(shè)計(jì)進(jìn)行資源優(yōu)化的路很漫長(zhǎng),涉及的方面很多,需要我們不斷發(fā)現(xiàn),不斷思考。小編在這里通過一些示例和大家分享如何使用Slider對(duì)某一類動(dòng)畫進(jìn)行存儲(chǔ)資源優(yōu)化。

我們?cè)谏钪薪?jīng)常會(huì)見到這樣一類應(yīng)用,如下圖所示:

347420da-f5ef-11ed-90ce-dac502259ad0.png

通過觀察我們發(fā)現(xiàn),盡管上面的圖形元素,外觀各異、形狀各異,但是都可以被抽象為兩個(gè)部分:靜態(tài)部分和動(dòng)態(tài)部分。比如,咖啡液位,由靜態(tài)的杯子和動(dòng)態(tài)的咖啡組成;溫度計(jì)由靜態(tài)的玻璃容器和動(dòng)態(tài)的水銀組成。

我們?cè)倏纯碐UI設(shè)計(jì)中經(jīng)常使用到的控件——Slider,其典型結(jié)構(gòu)如下圖所示。這是一個(gè)典型的Slider控件,由靜態(tài)的背景 (main) 和動(dòng)態(tài)的指示器 (Indicator) 以及調(diào)節(jié)點(diǎn) (Knob) 組成。

348125c8-f5ef-11ed-90ce-dac502259ad0.png

LVGL中,設(shè)置樣式的函數(shù)名都是以lv_obj開始,例如:

  • lv_obj_set_style_bg_color

  • lv_obj_set_style_bg_opa

  • lv_obj_set_style_bg_img_src

可見,樣式是針對(duì)所有控件的父對(duì)象而言的。換句話說,我們既可以通過lv_obj_set_style_bg_img_src為Slider控件的背景、指示器和調(diào)節(jié)點(diǎn)設(shè)置圖片樣式,也可以通過lv_obj_set_style_bg_opa將Slider控件的背景、指示器和調(diào)節(jié)點(diǎn)的透明度設(shè)置為0從而達(dá)到隱藏Slider控件相應(yīng)組成部分的目的。

接下來,我們看看如何使用Slider實(shí)現(xiàn)咖啡液位變化的動(dòng)畫效果。

首先,通過美工設(shè)計(jì),將咖啡液位的圖分解為兩部分,杯子和咖啡,并將它們分別作為Slider的背景部分和指示器部分,同時(shí)隱藏Slider的調(diào)節(jié)點(diǎn)部分,如下面的簡(jiǎn)圖所示。

3487f998-f5ef-11ed-90ce-dac502259ad0.png

咖啡液位的分解及與Slider的對(duì)應(yīng)關(guān)系

完成上面的工作之后,后面的工作就是為Slider創(chuàng)建動(dòng)畫,并在動(dòng)畫的回調(diào)函數(shù)中周期性地調(diào)用lv_slider_set_value函數(shù)以改變Slider指示器的值,從而實(shí)現(xiàn)咖啡液位變化的效果。

看到這里,大家會(huì)問了,你講這么多,和存儲(chǔ)資源優(yōu)化有什么關(guān)系嗎?大家請(qǐng)想想看,通常我們?nèi)绾螌?shí)現(xiàn)這樣的動(dòng)畫效果?大致如下圖所示,將咖啡液位變化的動(dòng)畫分解為若干不同液位的靜態(tài)圖片,然后,每隔一個(gè)時(shí)間間隔播放一張圖片。時(shí)間間隔越短,圖片數(shù)量越多,動(dòng)畫的效果越流暢。但是,圖片數(shù)量越多,需要的存儲(chǔ)資源越多。

但是,使用上面的方法,實(shí)現(xiàn)相同的動(dòng)畫效果,只需要兩張圖片即可,節(jié)約存儲(chǔ)資源。

3492c9cc-f5ef-11ed-90ce-dac502259ad0.png

那么,最后總結(jié)一下,有兩點(diǎn)與大家分享:

01

前面的三個(gè)顯示應(yīng)用,可以抽象出共同的特性。那就是,它們都可以清晰地剝離出靜態(tài)部分和動(dòng)態(tài)部分。動(dòng)態(tài)部分都具有有限的變化范圍,也就是具有一個(gè)起始值和結(jié)束值。比如,咖啡液位總是在最低液位和最高液位之間變化;又比如,溫度計(jì)顯示的溫度值也總是在最低溫度和最高溫度之間變化。那么,對(duì)于這類應(yīng)用,就可以用Slider實(shí)現(xiàn)。

每一種顯示動(dòng)畫的方法,都有適用范圍,沒有好壞之分。我們只有為自己的顯示應(yīng)用選擇合適的方案,才能最大限度地優(yōu)化存儲(chǔ)資源。

02

一點(diǎn)GUI動(dòng)畫顯示的心得體會(huì),與大家分享,歡迎各位大神指導(dǎo)。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • NXP
    NXP
    +關(guān)注

    關(guān)注

    60

    文章

    1281

    瀏覽量

    184581

原文標(biāo)題:嵌入式GUI“美容”小技巧:讓小身板的MCU,也可以有個(gè)俊模樣的界面設(shè)計(jì)!

文章出處:【微信號(hào):NXP客棧,微信公眾號(hào):NXP客?!繗g迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    新手怎么學(xué)嵌入式?

    嵌入式系統(tǒng)的發(fā)展,嵌入式操作系統(tǒng)變得越來越重要。學(xué)習(xí)嵌入式操作系統(tǒng)可以幫助你更好地管理嵌入式
    發(fā)表于 12-12 10:51

    嵌入式超火的方向哪些?

    的工業(yè)化設(shè)備都是一個(gè)硬件,為了保證硬件的正常運(yùn)作,需要在硬件中嵌入一些傳感器和程序。因此目前甚至是未來嵌入式系統(tǒng)在工業(yè)自動(dòng)化中都扮演著非常重要的角色,它可以控制各種機(jī)器設(shè)備,并將生產(chǎn)過
    發(fā)表于 11-21 15:49

    嵌入式學(xué)習(xí)建議

    ,最好能有自己動(dòng)手的空間。不花一分硬件錢想要學(xué)好嵌入式系統(tǒng)不實(shí)際,因?yàn)檫@是實(shí)踐性很強(qiáng)的學(xué)科。好書,可以人少走彎路,不被誤導(dǎo)。好老師可以
    發(fā)表于 10-22 11:41

    嵌入式系統(tǒng)的未來趨勢(shì)哪些?

    嵌入式系統(tǒng)是指將我們的操作系統(tǒng)和功能軟件集成于計(jì)算機(jī)硬件系統(tǒng)之中,形成一個(gè)專用的計(jì)算機(jī)系統(tǒng)。那么嵌入式系統(tǒng)的未來趨勢(shì)哪些呢? 1. 人工智能與機(jī)器學(xué)習(xí)的整合 隨著現(xiàn)代人工智能(AI)
    發(fā)表于 09-12 15:42

    七大嵌入式GUI盤點(diǎn)

    嵌入式圖形用戶界面GUI)是一種為嵌入式系統(tǒng)設(shè)計(jì)的用戶界面,它可以
    發(fā)表于 09-02 10:58

    嵌入式linux開發(fā)的基本步驟哪些?

    之前,首先需要選擇合適的硬件平臺(tái)。硬件選擇需要考慮以下幾個(gè)方面: 1.1 處理器 嵌入式Linux開發(fā)需要一個(gè)處理器,常見的處理器ARM、MIPS、PowerPC等。選擇處理器時(shí),需要考慮處理器的性能、功耗、成本等因素。 1.
    的頭像 發(fā)表于 09-02 09:11 ?535次閱讀

    嵌入式QT常見開發(fā)方式哪些?

    功能。 3.Qt Quick/QML開發(fā): 利用QML語(yǔ)言和Qt Quick框架來創(chuàng)建流暢且動(dòng)畫豐富的用戶界面,QML是一種聲明性語(yǔ)言,適合于快速原型開發(fā)和移動(dòng)設(shè)備、嵌入式系統(tǒng)的現(xiàn)代界面設(shè)計(jì)。同時(shí)
    發(fā)表于 08-12 10:05

    極海半導(dǎo)體亮相2024全球MCU嵌入式生態(tài)發(fā)展大會(huì)

    7月25日,由AspenCore主辦的2024全球MCU嵌入式生態(tài)發(fā)展大會(huì),在深圳羅湖君悅酒店如期舉行。此次大會(huì)為來自消費(fèi)電子、家電、工業(yè)控制、通信網(wǎng)絡(luò)、新能源汽車、物聯(lián)網(wǎng)領(lǐng)域、儲(chǔ)能領(lǐng)域的OEM廠商和嵌入式方案集成商代表帶來
    的頭像 發(fā)表于 07-26 15:18 ?813次閱讀

    嵌入式熱門領(lǐng)域哪些?

    師提供了獨(dú)特的事業(yè)機(jī)遇,同時(shí)為行業(yè)的技術(shù)發(fā)展和應(yīng)用前景帶來了無限可能。 智能醫(yī)療 嵌入式系統(tǒng)在智能醫(yī)療領(lǐng)域的應(yīng)用備受矚目。通過將嵌入式系統(tǒng)與醫(yī)療設(shè)備和傳感器相結(jié)合,
    發(fā)表于 07-16 09:23

    適合初學(xué)者的嵌入式項(xiàng)目哪些?

    適合初學(xué)者的嵌入式項(xiàng)目哪些? 嵌入式學(xué)習(xí)是一個(gè)實(shí)踐性很強(qiáng)的領(lǐng)域,通過實(shí)際項(xiàng)目可以幫助你鞏固理論知識(shí)并提升技能。以下是幾個(gè)適合初學(xué)者練手的
    發(fā)表于 07-11 10:23

    嵌入式熱門發(fā)展方向哪些?

    已經(jīng)體現(xiàn)了嵌入式系統(tǒng)的優(yōu)勢(shì);在信息家電領(lǐng)域,冰箱、空調(diào)等的網(wǎng)絡(luò)化、智能化將引領(lǐng)人們的生活步入一個(gè)嶄新的空間,即使你不在家里,可以通過電話線、網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程控制,在這些設(shè)備中,
    發(fā)表于 04-11 14:17

    分享幾個(gè)嵌入式中常用的GUI

    一、什么是GUIGUI是圖形用戶界面(GraphicalUserInterface,簡(jiǎn)稱GUI,又稱圖形用戶接口)是指采用圖形方式顯示的計(jì)算機(jī)操作用戶
    的頭像 發(fā)表于 04-06 08:09 ?1653次閱讀
    分享幾個(gè)<b class='flag-5'>嵌入式</b>中常用的<b class='flag-5'>GUI</b>

    GUI Guider新版本發(fā)布,嵌入式GUI開發(fā)體驗(yàn)升級(jí)

    作為恩智浦著力打造的一款嵌入式人機(jī)交互應(yīng)用開發(fā)工具,GUI Guider又迎來了一個(gè)新版本!最新發(fā)布的GUI Guider v1.7.1增加了視頻轉(zhuǎn)換功能,
    發(fā)表于 03-29 09:47 ?1723次閱讀
    <b class='flag-5'>GUI</b> Guider新版本發(fā)布,<b class='flag-5'>嵌入式</b><b class='flag-5'>GUI</b>開發(fā)體驗(yàn)升級(jí)

    嵌入式技術(shù)領(lǐng)域,哪些坑?

    從事嵌入式技術(shù)開發(fā),哪些坑? ? 燒錢 ? 嵌入式的學(xué)習(xí)十分燒錢,這就讓人有點(diǎn)望而卻步。我是做DSP起步的,更是能體會(huì)到嵌入式絕對(duì)是一個(gè)
    的頭像 發(fā)表于 02-21 15:22 ?478次閱讀

    嵌入式設(shè)備里SOC與MCU的區(qū)別是什么?

    嵌入式設(shè)備里SOC與MCU的區(qū)別是什么?
    發(fā)表于 02-02 07:37