新聞中心

        EEPW首頁 > 光電顯示 > 設計應用 > 平板電視OSD的結構化界面設計

        平板電視OSD的結構化界面設計

        作者: 時間:2012-06-10 來源:網絡 收藏

        2. 包含的基本元素

        本文引用地址:http://www.104case.com/article/167910.htm

          信息中主要包括以下一些基本元素(可能本文的提法未必準確,希望讀者可以體會到其意思):區域、標簽、圖標、文字、進度條、動畫、數字、可選圖標、導航信息等。下面分別給出這些元素的定義、作用、屬性和響應事件。

          a. 區域

          定義:在畫布中,以特定的屬性(顏色、閃爍、大小等)標示出的矩形或任意形狀的區域。

          作用:對OSD內容進行分類或標示,例如標題區域,內容區域等。

          屬性:位置、顏色、閃爍特性等。

          響應事件:作為固定的信息內容,通常對UI輸入的控制無響應。

          b. 標簽(Label)

          定義:固定不變的文字信息,可以是一行或多行。

          作用:對OSD內容進行必要的文字說明。

          

          圖3:字符型OSD結構。

          屬性:位置、顏色、閃爍特性、語言類別、大小寫、對齊方式等。

          響應事件:作為固定的信息內容,通常對UI輸入的控制無響應。

          c. 圖標(Icon)

          定義:以特定的字符或像素組合構成形狀,以表達可識別的信息。

          作用:對OSD內容進行形象的提示,如播放、禁止等特定符號。

          屬性:位置、顏色、閃爍特性等。

          響應事件:作為固定的信息內容,通常對UI輸入的控制無響應。

          d. 文字(Text)

          定義:相較標簽,其同樣為文字信息,但是可以隨用戶的操作而改變。

          作用:以隨選擇而改變的文字內容,提供關于用戶選擇的文字提示。

          屬性:位置、顏色、語言類別、大小寫、對齊方式等。

          響應事件:用戶的選擇,通常為上一個或下一個選擇。

          e. 進度條(Bar)

          定義:矩形條狀的物件,隨其數值的不同而改變相關特性,未來也許會有其它形狀的此類物件,如油量表狀等,但它們都具有同樣的屬性。

          作用:以形象的圖形界面,給出關于某項數值的圖形說明。

          屬性:位置、顏色、上下限、當前值、類型、大小、是否顯示數值等。

          響應事件:數值的改變。

          f. 動畫(Movie)

          定義:隨時間而改變的圖標組合。

          作用:以活動的圖形使OSD界面更生動,提高信息的表達效果。

          屬性:位置、顏色、具有的圖標數目、變化速度等。

          響應事件:作為固定的信息內容,通常對UI輸入的控制無響應。

          g. 數字

          定義:隨有關參數或用戶選擇改變而改變的數字組合,可以為十進制或其它進制,亦可以是百分比或其它數值形式。

          作用:直觀地給出關于某項參數的數值量化指示,通常與進度條聯合使用,以達到直觀與形象的雙重效果。

          屬性:位置、顏色、上下限、當前值、進制選擇等。

          響應事件:對應參數的數值的改變。

          h. 可選圖標(Option)

          定義:隨有關參數或用戶選擇改變而改變的圖標組合。

          作用:用戶選擇的圖形化表達,例如選擇、未選擇、開啟、關閉等信息的圖形化表達。

          屬性:位置、顏色、閃爍、選擇數目等。

          響應事件:對應參數的選擇改變。

          i. 導航信息

          定義:呈現在OSD畫布上,對當前UI場景中的用戶操作進行提示的信息。

          作用:指引用戶操作相關按鍵,進行OSD內容操作。通常具有可用按鍵的指示以及必要的文字說明,通常作為OSD提示信息的完善和人機界面友好化的措施。

          屬性:位置、顏色、閃爍等。

          響應事件:UI場景、按鍵的改變。

          需要說明的是,上述的物件并不能涵蓋現在和將來所有的OSD中可能出現的內容,但卻是OSD的基本的和主要的內容,通過對它們進行分類和進行統一的處理,可以幫我們完成通常意義上的OSD的80-90%的工作。

          使用基于對象的方法處理OSD UI

          傳統的處理手法是將特定場景下的OSD物件逐一用代碼“畫”出來,在遇到特定的UI事件時,再利用一堆if else判斷出特定場景和操作對象,并做相應的OSD處理。在OSD較簡單的情況下,其不失為一個可行的方法。但在遇到OSD場景和模式較多的情況下,這個if else的結構會變得很大,而且更為重要的是極易出錯以及維護成本提高。

          隨著OSD越來越復雜以及代碼工作量的不斷提高,人們意識到我們需要花費太多時間在這些“表面文章”上,而真正重要的應用層和設備驅動層的開發時間會受到影響,進而影響新產品的開發進度。固件工程師也不愿不斷重復編寫同樣代碼來滿足不斷改變客戶的特定OSD需要。

          筆者早期也曾遭遇同樣的困擾,面對部門里工程師毫無效率地做著同樣的事情,感覺到開發一個統一的OSD UI平臺的重要性。現在對于上述OSD UI進行的分析,可以讓我們開發出獨立于特定數字視頻處理器平臺和OSD發生機制的硬件環境的獨立統一開發工具。

          事實上,顯示芯片方案的重要提供者如Genesis、Pixelworks等為了加速其產品的開發和應用速度,已經提供了具有這樣功能的基于Windows的固件開發工具。本文試圖探討這一類工具的運作原理,或許讀者基于本文可以開發出自己所需要的工具,當然其應用具有更廣泛的代表性。

          筆者在最近的液晶開發案例中使用了這樣一個結構:

          typedef struct

          {

          byte mode;//UI場景適用的模式

          byte lan; // UI語言

          byte scene; // UI場景

          byte last; // UI上個場景

          byte next; // UI下個場景

          byte sel; //UI 當前場景對物件的選擇

          byte sel_total; //UI當前場景中選擇項的總數

          byte *info; // UI的物件指針

          byte pos_v; // 物件垂直方向位置

          byte pos_h; // 物件水平方向的位置

          byte col_f; // 物件的前景顏色

          byte col_b; // 物件的背景顏色

          byte att; // 物件的其它顯示屬性

          ACT_Struct (*act)[]; // 該物件的響應動作表指針

          byte *note; // 導航說明信息

          }UI_Struct;

          

          圖4:Pixelworks的GUI Builder OSD



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安龙县| 信宜市| 新蔡县| 宁夏| 宾川县| 青川县| 上栗县| 兴隆县| 清涧县| 集安市| 东乡县| 佳木斯市| 仪陇县| 平乐县| 屯昌县| 桂东县| 贵港市| 射阳县| 深州市| 渭南市| 天全县| 休宁县| 武威市| 皮山县| 弥勒县| 平原县| 乳源| 玉林市| 黄骅市| 昌邑市| 灵台县| 桦川县| 邹平县| 固原市| 江都市| 贵港市| 云阳县| 洛浦县| 星座| 海安县| 宣化县|