模擬時(shí)鐘顯示方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及顯示技術(shù)領(lǐng)域,特別是涉及一種模擬時(shí)鐘顯示方法。
【背景技術(shù)】
[0002]目前,電子終端,包括車載電子終端基本都需要提供時(shí)鐘顯示的功能。通常大部分的電子終端都是顯示數(shù)字時(shí)鐘,如圖1所示,較少電子終端顯示模擬時(shí)鐘。
[0003]當(dāng)電子終端顯示引擎能夠支持多個(gè)圖層的界面顯示時(shí),比較容易實(shí)現(xiàn)模擬時(shí)鐘的顯示,僅以圖2來舉例,在四個(gè)不同圖層中分別實(shí)現(xiàn)表盤素材201、時(shí)針?biāo)夭?02、分針?biāo)夭?03以及秒針?biāo)夭?04的顯示,最終的顯示效果即為一個(gè)能夠顯示時(shí)、分、秒的模擬時(shí)鐘200。其中所說的素材可以為圖片,圖片中每一像素點(diǎn)對應(yīng)于一 RGBA值(紅、綠、藍(lán)、透明度),從而可以實(shí)現(xiàn)不同顯示效果。
[0004]當(dāng)電子終端計(jì)算能力以及存儲空間比較有限,例如車載電子終端的顯示引擎一般只支持兩個(gè)圖層時(shí),其中一個(gè)圖層還需作為視頻播放專用的視頻層,另一圖層作為HMI (Human Machine Interface,人機(jī)接口)層使用,那么只能在HMI—個(gè)圖層中實(shí)現(xiàn)模擬時(shí)鐘的顯示。因此,需要提供一種模擬時(shí)鐘顯示方法,在電子終端資源有限的情況下,能夠使用最少的系統(tǒng)資源實(shí)現(xiàn)單個(gè)圖層中的模擬時(shí)鐘的顯示。
【發(fā)明內(nèi)容】
[0005]基于此,有必要提供一種模擬時(shí)鐘顯示方法,能夠使用最小的系統(tǒng)資源實(shí)現(xiàn)在單個(gè)圖層中顯示模擬時(shí)鐘。
[0006]一種模擬時(shí)鐘顯示方法,包括:
[0007]獲取時(shí)間;
[0008]在每一個(gè)圖層刷新周期內(nèi),根據(jù)模擬時(shí)鐘的表盤圖片素材,對顯示圖層所需的顯示數(shù)據(jù)中的各像素點(diǎn)進(jìn)行像素賦值;
[0009]根據(jù)所獲取的時(shí)間,得到每一個(gè)圖層刷新周期內(nèi)模擬時(shí)鐘的針體位置和針體像素值,并利用所述針體位置和所述針體像素值,更新所述顯示數(shù)據(jù);
[0010]根據(jù)更新后的顯示數(shù)據(jù),每隔一個(gè)圖層刷新周期對圖層界面進(jìn)行刷新,從而顯示模擬時(shí)鐘。
[0011]在一個(gè)實(shí)施例中,所述根據(jù)所獲取的時(shí)間,得到每一個(gè)圖層刷新周期內(nèi)模擬時(shí)鐘的針體位置和針體像素值,并利用所述針體位置和所述針體像素值,更新所述顯示數(shù)據(jù)的步驟,包括:
[0012]預(yù)先存儲模擬時(shí)鐘各類型的針體沿著模擬時(shí)鐘中心每旋轉(zhuǎn)6°所對應(yīng)的針體索引號及針體圖片素材,所述針體圖片素材中包含背景像素點(diǎn)和針體像素點(diǎn);
[0013]根據(jù)所獲取的時(shí)間,計(jì)算所述時(shí)間對應(yīng)的各類型的針體的針體索引號及針體圖片素材;
[0014]加載對應(yīng)的針體圖片素材;
[0015]過濾掉針體圖片素材中的背景像素點(diǎn),并根據(jù)針體像素點(diǎn)去更新顯示數(shù)據(jù)中對應(yīng)位置處像素點(diǎn)的像素值。
[0016]在一個(gè)實(shí)施例中,所述根據(jù)所獲取的時(shí)間,得到每一個(gè)圖層刷新周期內(nèi)模擬時(shí)鐘的針體位置和針體像素值,并利用所述針體位置和所述針體像素值,更新所述顯示數(shù)據(jù)的步驟,包括:
[0017]預(yù)先存儲模擬時(shí)鐘各類型的針體所對應(yīng)的處在基準(zhǔn)位置的針體圖片素材,所述針體圖片素材包含有背景像素點(diǎn)和針體像素點(diǎn);
[0018]根據(jù)所獲取的時(shí)間,計(jì)算所述時(shí)間對應(yīng)的各類型針體相對所述基準(zhǔn)位置所要旋轉(zhuǎn)的角度;
[0019]根據(jù)基準(zhǔn)位置的針體圖片素材,通過角度變換,計(jì)算所述時(shí)間對應(yīng)的針體圖片素材中各像素點(diǎn)的像素值;
[0020]過濾掉計(jì)算后所得到的針體圖片素材中的背景像素點(diǎn),并根據(jù)針體像素點(diǎn)去更新顯示數(shù)據(jù)中對應(yīng)位置處像素點(diǎn)的像素值。
[0021]在一個(gè)實(shí)施例中,所述根據(jù)基準(zhǔn)位置的針體圖片素材,通過角度變換,計(jì)算所述時(shí)間對應(yīng)的針體圖片素材中各像素點(diǎn)的像素值的步驟,還包括:
[0022]將所述時(shí)間對應(yīng)的針體圖片素材中各像素點(diǎn)的位置坐標(biāo),通過角度逆變換,計(jì)算得到基準(zhǔn)位置針體圖片素材中對應(yīng)的浮點(diǎn)坐標(biāo)值;
[0023]對所述浮點(diǎn)坐標(biāo)值鄰近位置的像素點(diǎn)采用線性插值的算法計(jì)算所述時(shí)間對應(yīng)的針體圖片素材中各像素點(diǎn)的像素值。
[0024]在一個(gè)實(shí)施例中,所述背景像素點(diǎn)和所述針體像素點(diǎn)為不同顏色的像素點(diǎn)。
[0025]在一個(gè)實(shí)施例中,所述背景像素點(diǎn)為紅色像素點(diǎn),所述針體像素點(diǎn)為白色像素點(diǎn)。
[0026]在一個(gè)實(shí)施例中,所述表盤圖片素材和所述針體圖片素材為JPG格式圖片。
[0027]在一個(gè)實(shí)施例中,所述圖層刷新周期為I秒鐘;所述各類型的針體包括時(shí)針針體、分針針體和秒針針體。
[0028]在一個(gè)實(shí)施例中,所述圖層刷新周期為I秒鐘;所述各類型的針體包括時(shí)針針體和分針針體。
[0029]在一個(gè)實(shí)施例中,所述圖層刷新周期為I分鐘;所述各類型的針體包括時(shí)針針體和分針針體。
[0030]上述模擬時(shí)鐘顯示方法,先根據(jù)表盤圖片素材對顯示數(shù)據(jù)進(jìn)行賦值,然后根據(jù)獲取的時(shí)間確定針體所對應(yīng)的位置及像素值,再對顯示數(shù)據(jù)對應(yīng)的位置處進(jìn)行更新,最終每隔一個(gè)圖層刷新周期,依據(jù)顯示數(shù)據(jù)來刷新圖層,從而實(shí)現(xiàn)模擬時(shí)鐘的顯示,由此,在電子終端系統(tǒng)資源有限的情況下,能夠使用最少的系統(tǒng)資源實(shí)現(xiàn)模擬時(shí)鐘的顯示。
【附圖說明】
[0031]圖1為傳統(tǒng)技術(shù)中數(shù)字時(shí)鐘顯示的界面示意圖;
[0032]圖2為傳統(tǒng)技術(shù)中一個(gè)多圖層實(shí)現(xiàn)模擬時(shí)鐘顯示的示意圖;
[0033]圖3為一個(gè)實(shí)施例中的模擬時(shí)鐘顯示方法的流程示意圖;
[0034]圖4為一個(gè)實(shí)施例中的表盤圖片素材不意圖
[0035]圖5A為一個(gè)實(shí)施例中更新顯示數(shù)據(jù)的流程示意圖;
[0036]圖5B為一個(gè)實(shí)施例中的時(shí)針針體的幾個(gè)針體索引號及針體圖片素材示意圖;
[0037]圖6A為一個(gè)實(shí)施例中更新顯示數(shù)據(jù)的流程示意圖;
[0038]圖6B為一個(gè)實(shí)施例中的基準(zhǔn)位置處的分針針體的針體圖片素材示意圖。
【具體實(shí)施方式】
[0039]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0040]圖1為傳統(tǒng)技術(shù)中以數(shù)字時(shí)鐘的形式顯示時(shí)間。圖2為傳統(tǒng)技術(shù)中通過多個(gè)圖層實(shí)現(xiàn)模擬時(shí)鐘的顯示,例如在單獨(dú)一個(gè)圖層中顯示表盤,在其余三個(gè)圖層中顯示時(shí)針、分針和秒針,表盤、時(shí)針、分針、秒針可以對應(yīng)于不同的PNG圖片,因此在多圖層中較為容易實(shí)現(xiàn)模擬時(shí)鐘的顯示。而當(dāng)電子終端資源有限,顯示引擎支持較少的圖層中,就需要一種提供一種在單圖層中顯示模擬時(shí)鐘的方法。
[0041]參見圖3,在一個(gè)實(shí)施例中提供了一種模擬時(shí)鐘顯示方法,尤其適用于系統(tǒng)資源有限的電子終端如車載顯示終端上。該方法包括:
[0042]步驟301,獲取時(shí)間。
[0043]具體的,電子終端需要在模擬時(shí)鐘上顯示的時(shí)間可以通過網(wǎng)絡(luò)獲取,或者由衛(wèi)星進(jìn)行授時(shí)。電子終端可以每隔I秒鐘獲取時(shí)間。
[0044]步驟302,在每一個(gè)圖層刷新周期內(nèi),根據(jù)模擬時(shí)鐘的表盤圖片素材,對顯示圖層所需的顯示數(shù)據(jù)中的各像素點(diǎn)進(jìn)行像素賦值。
[0045]具體的,本步驟中的圖層刷新周期可以是I秒鐘,所要顯示的模擬時(shí)鐘可以同時(shí)包含時(shí)針、分針和秒針。圖層刷新周期也可以是I分鐘,所要顯示的模擬時(shí)鐘只需含有時(shí)針和分針。此外,圖層刷新周期可以是I秒,而模擬時(shí)鐘僅含有時(shí)針和分針。上述三種情況的工作原理相類似,在本發(fā)明實(shí)施例中,以圖層刷新周期為I秒,所顯示的模擬時(shí)鐘同時(shí)包含時(shí)針、分針和秒針的情況來舉例,其它情況不再贅述。
[0046]由此,在本步驟中,在每一圖層刷新周期內(nèi)(I秒),可以根據(jù)如圖4所示的表盤圖片素材,表盤圖片素材為JPG格式圖片,名稱為Simu_clock_background.jpg。本實(shí)施例中要實(shí)現(xiàn)單圖層中的模擬時(shí)鐘顯示,在每一圖層刷新周期,圖層刷新一次,圖層顯示對應(yīng)于一定大小的顯示數(shù)據(jù),以800X480分辨率為例,設(shè)每一像素點(diǎn)對應(yīng)4字節(jié)的RGBA值,則每一秒所顯示的顯示數(shù)據(jù)的大小為800X480X4字節(jié)。本步驟中的表盤圖片素材可以與圖層具有相同的大小,也可以是圖層中一小部分,所要顯示在圖層中的位置可以預(yù)先進(jìn)行設(shè)置,例如設(shè)置好表盤圖片素材在圖層中的坐標(biāo)值。本步驟根據(jù)表盤圖片素材,對顯示數(shù)據(jù)中各像素點(diǎn)進(jìn)行像素賦值,從而可以在圖層刷新時(shí),可以實(shí)現(xiàn)表盤的顯示,例如包括表盤的刻度、變盤上的鐘點(diǎn)的阿拉伯?dāng)?shù)值等。
[0047]步驟303,根據(jù)所獲取的時(shí)間,得到每一個(gè)圖層刷新周期內(nèi)模擬時(shí)鐘的針體位置和針體像素值,并利用所述針體位置和所述針體像素值,更新所述顯示數(shù)據(jù)。
[0048]具體的,本步驟中以圖層刷新周期為I秒,模擬時(shí)鐘針體包含時(shí)針、分針和秒針來舉例。在模擬時(shí)鐘中,秒針針體每一秒鐘相對于模擬時(shí)鐘的中心順時(shí)針旋轉(zhuǎn)6 °,分針每一分鐘順時(shí)針旋轉(zhuǎn)6°,而時(shí)針隨著分針每過12分鐘旋轉(zhuǎn)6°。默認(rèn)地,時(shí)針、分針、秒針的針體大小固定,顏色也預(yù)先設(shè)置為固定某種顏色,因此根據(jù)獲取的時(shí)間以及針體的旋轉(zhuǎn)規(guī)則,就可以計(jì)算出針體的位置,將這些位置處的像素點(diǎn)賦值為針體像素點(diǎn)的像素值,從而實(shí)現(xiàn)顯示數(shù)據(jù)的更新。
[0049]步驟304,根據(jù)更新后的顯示數(shù)據(jù),每隔一個(gè)圖層刷新周期對圖層界面進(jìn)行刷新,從而顯示模擬時(shí)鐘。
[0050]具體的,更新后的顯示數(shù)據(jù),含有表盤部分的數(shù)據(jù),也含有針體部分的數(shù)據(jù),由此,每隔一個(gè)圖層刷新周期就可以顯示特定時(shí)間的模擬時(shí)鐘。
[0051]參見圖5A和圖5B,為一個(gè)實(shí)施例中更新顯示數(shù)據(jù)的流程示意圖。該過程包括:
[0052]步驟501,預(yù)先存儲模擬時(shí)鐘各類型的針體沿著模擬時(shí)鐘中心每旋