專利名稱:一種皮膚設計方法及裝置的制作方法
技術領域:
本發明涉及計算機技術領域,尤其涉及一種皮膚設計方法及裝置。
背景技術:
隨著計算機處理能力的提高以及交互界面不斷發展,在信息高速發展、用戶需求不斷變化的互聯網時代,以及強調豐富體驗的大前提下,越來越多的軟件把用戶體驗提到一個非常重要的高度。在軟件功能豐富化的同時,界面開發部分對應的圖片元素和配置信息呈指數增長,越來越多的軟件都采用可定制皮膚來提升產品的交互體驗。皮膚系統中通常包括一系列的圖像文件和相關的配置信息,應用程序通過上述圖像文件和配置信息來呈現用戶界面,達到豐富的體驗效果。隨著界面體驗需求越來越高,皮膚系統中需要管理的資源越來越多,如何統一界面風格、統一管理資源的問題日趨重要。目前,很多客戶端軟件采用Windows Hook技術來實現界面公共元素的呈現,例如對話框的標題欄統一化。Windows Hook技術通過代碼的方式來實現界面風格統一化和資源統一管理,是Windows提供的一種消息處理機制平臺,是指在程序正常運行中接受信息之前預先啟動的函數,用來檢查和修改傳給該程序的信息,達到實現改變默認Windows界面顯示的目的。然而,基于Windows Hook技術的皮膚引擎一般做成固定的庫,以第三方的形式提供給需要的軟件客戶端使用。在使用過程中,必須從技術層面上了解上述皮膚引擎中的庫, 需要閱讀冗長而復雜的技術性的文檔,才可能使用在軟件的界面的開發中庫,缺乏靈活性, 修改和維護也極度不方便,擴展性比較差,可配置性也較差。此外,大多數皮膚引擎還引入XML(eXtensible Markup Language,擴展標記語言) 來對皮膚進行描述,實現樹形的多層次化的結構。例如一個窗口對應一個XML文檔,文檔中根節點代表窗口,其子節點代表界面上所有的子控件。以樹形結構來標識界面繪制時的重疊關系。XML是一種簡單的數據存儲語言,使用一系列簡單的標記描述數據。雖然XML比二進制數據占用更多的空間,但是XML可以通過不同的格式化描述手段完成最終的形式表達,可以比二進制數據的表達更形象和生動。然而,在使用XML的過程中,在皮膚系統中為了引用某一類具有相同特征的皮膚元素,大量使用重復性的語句進行描述,導致皮膚編輯文檔中存在大量重復語句的書寫,界面上有些元素的風格會出現不統一的情況,在資源統一化管理方面有大量缺陷,即使一個小的更改,也要修改大量XML。當軟件界面需要維護的資源非常龐大的時候,維護難度呈指數級增長。
發明內容
本發明提供了一種皮膚設計方法及裝置,用于簡化資源的維護。本發明提供了一種皮膚設計方法,包括以下步驟解析目標皮膚文件中的片斷元素以及所述片斷元素對應的配置參數,將所述目標皮膚文件映射到對應的控件類,生成所述目標皮膚文件對應的控件對象;
繪制用戶交互界面的皮膚,將所述控件對象呈現在所述用戶交互界面的皮膚上。優選地,所述目標皮膚文件包括公共資源集合和片段元素,所述公共資源集合為皮膚系統中的基本配置信息,包含多種元公共元素;所述片段元素為以所述元公共元素為基礎的控件原型,所述片段元素提供可配置參數的接口,通過配置不同的參數實例化為不同的控件對象。優選地,所述解析目標皮膚文件中的片斷元素以及所述片斷元素對應的配置參數之前,還包括對所述皮膚系統中表征不同的皮膚控件對象進行抽象,得到所述皮膚系統的片段元素。優選地,所述解析目標皮膚文件中的片斷元素以及所述片斷元素對應的配置參數之前,還包括對包含所述片斷元素的源皮膚文件進行預加載處理,得到所述目標皮膚文件。優選地,所述對包含所述片斷元素的源皮膚文件進行預加載處理,得到所述目標皮膚文件,具體包括讀取所述源皮膚文件中的原始皮膚元素;如果所述原始皮膚元素為片段元素,則根據所述片斷元素的文件屬性搜索所述片斷元素中的參數字串,將所述參數字串替換為對應的屬性值,并更新所述片段元素的緩存空間的首地址和長度;如果所述原始皮膚元素為文件元素,則更新所述文件元素的緩存空間的首地址和長度。本發明還提供了一種皮膚設計裝置,包括解析模塊,用于解析目標皮膚文件中的片斷元素以及所述片斷元素對應的配置參數,將所述目標皮膚文件映射到對應的控件類,生成所述目標皮膚文件對應的控件對象;繪制模塊,用于繪制用戶交互界面的皮膚,將所述解析模塊生成的控件對象呈現在所述用戶交互界面的皮膚上。優選地,所述目標皮膚文件包括公共資源集合和片段元素,所述公共資源集合為皮膚系統中的基本配置信息,包含多種元公共元素;所述片段元素為以所述元公共元素為基礎的控件原型,所述片段元素提供可配置參數的接口,通過配置不同的參數實例化為不同的控件對象。優選地,所述的裝置,還包括獲取模塊,用于對所述皮膚系統中表征不同的皮膚控件對象進行抽象,得到所述皮膚系統的片段元素,供所述解析模塊使用。優選地,所述的裝置,還包括預處理模塊,用于對包含所述獲取模塊得到的片斷元素的源皮膚文件進行預加載處理,得到所述目標皮膚文件,供所述解析模塊使用。優選地,所述預處理模塊,具體用于讀取所述源皮膚文件中的原始皮膚元素;如果所述原始皮膚元素為片段元素,則根據所述片斷元素的文件屬性搜索所述片斷元素中的參數字串,將所述參數字串替換為對應的屬性值,并更新所述片段元素的緩存空間的首地址和長度;如果所述原始皮膚元素為文件元素,則更新所述文件元素的緩存空間的首地址和長度。
與現有技術相比,本發明具有以下優點本發明在皮膚系統中引入片段元素,通過對片段元素配置參數可以呈現不同的皮膚效果,實現界面的統一化和多樣化,并簡化了資
源管理。
為了更清楚地說明本發明或現有技術中的技術方案,下面將對本發明或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖1為本發明中的一種皮膚設計方法流程圖;圖2為本發明應用場景中的皮膚設計流程圖;圖3為本發明中的皮膚系統的一種對話框示意圖;圖4為本發明中的皮膚系統的另一種對話框示意圖;圖5為本發明中的皮膚文件的預加載處理流程圖;圖6為本發明中一種皮膚設計裝置結構示意圖。
具體實施例方式本發明提供的技術方案中,其核心思想為將皮膚系統中大量出現的元素進行歸類和抽象,在皮膚系統中引入片斷元素(Fragment Element)。對于表征不同的皮膚控件對象, 抽象成為各種類型的片段元素,例如按鈕、對話框標題欄、對話框底部欄、單選框、組合框、 編輯框、滑動條和列表等。片段元素的引入使得皮膚系統只需要維護一份原型,在使用過程中通過配置參數就可以呈現不同的效果,只要使用簡單的編輯操作變可實現界面的統一化和多樣化;原型的唯一化使得資源管理大大簡化,也避免了 XML描述的重復化。此外,在解析片斷元素的皮膚配置文檔時,還可以利用預處理技術對片段元素進行預翻譯,生成目標皮膚文件,加快運行時皮膚加載速度。下面將結合本發明中的附圖,對本發明的技術方案進行清楚、完整地描述,顯然, 所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。如圖1所示,為本發明中的一種皮膚設計方法流程圖,包括以下步驟步驟101,解析目標皮膚文件中的片斷元素以及片斷元素對應的配置參數,將該目標皮膚文件映射到對應的控件類,生成該目標皮膚文件對應的控件對象。具體地,目標皮膚文件可以包括公共資源集合和片段元素。其中,公共資源集合為皮膚系統中基本配置信息,包含多種元公共元素,元公共元素為皮膚系統中最基本的原子數據,可以是顏色、字體、文字、不規則區域和變色圖片;片段元素為以公共資源集合中的元公共元素為基礎的控件原型,可以包括按鈕、對話框標題欄、對話框底部欄、單選框、組合框、編輯框、滑動條和列表等。片斷元素可以根據皮膚系統中表征不同的皮膚控件對象抽象得到,包含多個表征不同的皮膚控件對象的公共屬性。片段元素還可以提供配置參數的接口,通過配置不同的參數實例化為不同的控件對象。
解析目標皮膚文件時,可以將目標皮膚文件中的格式化信息轉化為控件類數據和控件類參數,從而生成目標皮膚文件對應的控件對象。步驟102,繪制用戶交互界面的皮膚,將控件對象呈現在用戶交互界面的皮膚上。本發明在皮膚系統中引入片段元素,通過對片段元素配置參數可以呈現不同的皮膚效果,實現界面的統一化和多樣化,并簡化了資源管理。由于本發明在皮膚配置文件中引入了片段元素,而片斷元素中的參數字符串無法直接套用已有的解析皮膚的流程,因此,在生成控件對象之前,需要對源皮膚文件中的原始皮膚元素進行預加載處理。如果在客戶端軟件啟動時進行預加載處理,會降低客戶端軟件的啟動速度。由于客戶端軟件中可見的是含有片斷元素的目標皮膚文件,因此,在系統發布皮膚文件時,可以利用外部工具生成翻譯后的皮膚文件,在皮膚繪制程序運行之前完成對原始數據的解析,得到程序需要的格式化信息。以下結合上述應用場景,對本發明中的皮膚設計方法進行詳細、具體的描述。如圖2所示,為本發明應用場景中的皮膚設計流程圖,具體包括以下步驟步驟201,對包含片斷元素的源皮膚文件進行預加載處理,得到對應的目標皮膚文件。其中,源皮膚文件為編譯之前的皮膚配置文檔,由XML格式的原始皮膚元素構成, 該原始皮膚元素可以包括片斷元素和文件元素,片斷元素為包含參數字串的控件原型,而文件元素為不包含參數字串的控件原型。目標皮膚文件為編譯完畢的格式化信息。預加載處理是在加載目標皮膚文件之前,根據原始皮膚元素的類型對源皮膚文件進行的翻譯操作和緩存更新操作。具體地,在預加載處理過程中,可以讀取所述源皮膚文件中的原始皮膚元素;判斷原始皮膚元素是否為片段元素,如果是,則根據該原始皮膚片斷元素的文件屬性搜索該片斷元素中的參數字串,將該參數字串替換為對應的屬性值,并更新該片段元素的緩存空間的首地址和長度;如果原始皮膚元素為文件元素,則更新該文件元素的緩存空間的首地址和長度。通常情況下,皮膚系統不僅需要統一管理圖像數據的存儲,還需要管理界面配色信息、界面元素排放位置信息、文字信息,字體和顏色等眾多相關元素的信息。本發明對大量使用的元素進行抽象,歸納生成某種特定控件的原型作為片段元素。片段元素是以元公共元素為基礎而歸納生成的第二級的元素,由一些大量出現的原子元素組成,是具有特定原子屬性的、可配置參數的皮膚元素。片段元素提供可配置參數的接口,當配置不同的參數的時候,可以被實例化為不同的控件對象。以皮膚系統中大量存在的對話框為例,如圖3和圖4所示。每個對話框都基本具備圖3和圖4中所標示的控件。將對話框抽象為片段元素后,只需要在皮膚系統中維護一份原型。片段元素將共性的部分固定,將特性的部分參數化,實現可配置性。例如,抽象出來的按鈕元素的描述可以為〈Fragment FID =“ YesBtn" ><ButtonControlOID = " % Paraml % “Align = " %Param2%"Gaps = “ % Param3%"Cmd=" % Param4%" CmdParams = “ % Param5%" BgType = " Png 〃
Image=" Common\BTN_BACK. PNG" ClipRegion = “ True “Text = “ iIDS_SKIN_MBBtnYESTexti“TextColorID =〃 DialogContentButton〃FontID=" NormalFont“ Split=" 4〃 Width = “ Bitmap" Height=" Bitmap"ColorizeText = " True" />〈/Fragment〉其中,按鈕元素的固定屬性包括背景圖類型、圖片切割方式、圖片名字、按鈕邊角類型、按鈕上文字、文字顏色、字體樣式、按鈕寬度和按鈕高度。可配置屬性包括唯一的標識符ID、相對位置對齊方式、絕對坐標、觸發的消息ID和消息參數。在共性的描述中,按鈕元素呈現出一個“確定”按鈕,可配置的參數部分為按鈕元素的布局和消息實現了動態配置。基于上述策略,對話框中所有需要“確定”按鈕的地方,都可以直接引用上述片段元素, 并配置適當的參數。片段元素的原型結構,如表1所示。表 1
權利要求
1.一種皮膚設計方法,其特征在于,包括以下步驟解析目標皮膚文件中的片斷元素以及所述片斷元素對應的配置參數,將所述目標皮膚文件映射到對應的控件類,生成所述目標皮膚文件對應的控件對象;繪制用戶交互界面的皮膚,將所述控件對象呈現在所述用戶交互界面的皮膚上。
2.如權利要求1所述的方法,其特征在于,所述目標皮膚文件包括公共資源集合和片段元素,所述公共資源集合為皮膚系統中的基本配置信息,包含多種元公共元素;所述片段元素為以所述元公共元素為基礎的控件原型,所述片段元素提供可配置參數的接口,通過配置不同的參數實例化為不同的控件對象。
3.如權利要求2所述的方法,其特征在于,所述解析目標皮膚文件中的片斷元素以及所述片斷元素對應的配置參數之前,還包括對所述皮膚系統中表征不同的皮膚控件對象進行抽象,得到所述皮膚系統的片段元ο
4.如權利要求1所述的方法,其特征在于,所述解析目標皮膚文件中的片斷元素以及所述片斷元素對應的配置參數之前,還包括對包含所述片斷元素的源皮膚文件進行預加載處理,得到所述目標皮膚文件。
5.如權利要求4所述的方法,其特征在于,所述對包含所述片斷元素的源皮膚文件進行預加載處理,得到所述目標皮膚文件,具體包括讀取所述源皮膚文件中的原始皮膚元素;如果所述原始皮膚元素為片段元素,則根據所述片斷元素的文件屬性搜索所述片斷元素中的參數字串,將所述參數字串替換為對應的屬性值,并更新所述片段元素的緩存空間的首地址和長度;如果所述原始皮膚元素為文件元素,則更新所述文件元素的緩存空間的首地址和長度。
6.一種皮膚設計裝置,其特征在于,包括解析模塊,用于解析目標皮膚文件中的片斷元素以及所述片斷元素對應的配置參數, 將所述目標皮膚文件映射到對應的控件類,生成所述目標皮膚文件對應的控件對象;繪制模塊,用于繪制用戶交互界面的皮膚,將所述解析模塊生成的控件對象呈現在所述用戶交互界面的皮膚上。
7.如權利要求6所述的裝置,其特征在于,所述目標皮膚文件包括公共資源集合和片段元素,所述公共資源集合為皮膚系統中的基本配置信息,包含多種元公共元素;所述片段元素為以所述元公共元素為基礎的控件原型,所述片段元素提供可配置參數的接口,通過配置不同的參數實例化為不同的控件對象。
8.如權利要求7所述的裝置,其特征在于,還包括獲取模塊,用于對所述皮膚系統中表征不同的皮膚控件對象進行抽象,得到所述皮膚系統的片段元素,供所述解析模塊使用。
9.如權利要求6所述的裝置,其特征在于,還包括預處理模塊,用于對包含所述獲取模塊得到的片斷元素的源皮膚文件進行預加載處理,得到所述目標皮膚文件,供所述解析模塊使用。
10.如權利要求9所述的裝置,其特征在于,所述預處理模塊,具體用于讀取所述源皮膚文件中的原始皮膚元素;如果所述原始皮膚元素為片段元素,則根據所述片斷元素的文件屬性搜索所述片斷元素中的參數字串,將所述參數字串替換為對應的屬性值,并更新所述片段元素的緩存空間的首地址和長度;如果所述原始皮膚元素為文件元素,則更新所述文件元素的緩存空間的首地址和長度。
全文摘要
本發明公開了一種皮膚設計方法,包括以下步驟解析目標皮膚文件中的片斷元素以及所述片斷元素對應的配置參數,將所述目標皮膚文件映射到對應的控件類,生成所述目標皮膚文件對應的控件對象;繪制用戶交互界面的皮膚,將所述控件對象呈現在所述用戶交互界面的皮膚上。本發明在皮膚系統中引入片段元素,通過對片段元素配置參數可以呈現不同的皮膚效果,實現界面的統一化和多樣化,并簡化了資源管理。本發明同樣公開了一種應用上述方法的裝置。
文檔編號G06F17/30GK102236544SQ20101015191
公開日2011年11月9日 申請日期2010年4月21日 優先權日2010年4月21日
發明者吳運聲, 鄒靈靈 申請人:騰訊科技(深圳)有限公司