亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

控件內容展現(xiàn)方法、控件內容展現(xiàn)裝置以及移動終端的制作方法

文檔序號:6365513閱讀:171來源:國知局
專利名稱:控件內容展現(xiàn)方法、控件內容展現(xiàn)裝置以及移動終端的制作方法
技術領域
本發(fā)明涉及移動通信領域,更加具體地,涉及一種用于展現(xiàn)瀏覽器控件內容的控件內容展現(xiàn)方法、控件內容展現(xiàn)裝置以及具有該控件內容展現(xiàn)裝置的移動終端。
背景技術
隨著移動互聯(lián)網技術的不斷發(fā)展,利用移動終端來瀏覽比如新浪等門戶網站上的新聞逐漸成為一種趨勢。目前的移動終端瀏覽器通常采用圖形用戶界面(⑶I)。圖I是一款流行的移動終端瀏覽器的圖形用戶界面的示例示意圖。圖I中示出的移動終端瀏覽器上的各個控件的顯示控制通常是執(zhí)行預先編譯好的代碼生成的。每一個基礎控件都自行擁有一套繪圖邏輯代碼,并且每一個基礎控件的繪圖流程都獨立于其他基礎控件。也就是說,每個基礎控件都是基于自己的繪圖邏輯代碼繪制,而不會與其它基礎控件共用繪圖邏輯代碼。很顯然,上述瀏覽器控件內容展現(xiàn)方案存在許多技術缺陷首先,管理困難,學習成本高。在上述控件內容展現(xiàn)方案中,即使兩個基礎控件相似度較高,該兩個基礎控件也必須每個都擁有獨立的繪圖邏輯,從而使得代碼復用度低。此夕卜,每個基礎控件的繪圖邏輯都分散在各個基礎控件中,不易管理。另外,由于繪圖邏輯涉及大量的坐標計算以及幾何變換,同時摻雜有業(yè)務邏輯的代碼,從而使得代碼易讀性非常差,由此要求編程人員熟悉每一個基礎控件的繪圖代碼。由于在上述控件內容展現(xiàn)方案中代碼分散且重復,所以編程人員的學習成本非常高。此外,擴展性非常差。當基礎控件需要修改其內容展示的時候,需要對每一個基礎控件的代碼進行修改,這種修改很費時費力而且容易出錯。同時,因為控件的內容顯示及其控制預先編譯在代碼中,程序發(fā)布之后無法做到不修改代碼就變更控件的樣式,因此無法實現(xiàn)基礎控件樣式的動態(tài)切換,例如,實現(xiàn)瀏覽器皮膚動態(tài)切換。最后,降低了程序開發(fā)的速度,不利于開發(fā)中的分工。由于控件的內容顯示預先寫在代碼中,每次修改顯示代碼都需要重新進行編譯。而界面顯示的代碼細節(jié)繁雜,存在大量的微調工作,每次修改都需要重新編譯的話,損耗了大量的代碼編譯時間。除此之外,界面代碼的調整需要編程人員參與,而不能由界面設計人員獨立完成,由于多人協(xié)助時需要相互依賴、牽制,從而導致工作效率低下,降低了程序開發(fā)速度。

發(fā)明內容
鑒于上述問題,本發(fā)明的目的是提供一種用于展現(xiàn)瀏覽器控件內容的控件內容展現(xiàn)方法。此外,本發(fā)明的另一目的是提供一種用于展現(xiàn)瀏覽器控件內容的控件內容展現(xiàn)裝 置以及具有上述控件內容展現(xiàn)裝置的移動終端。根據(jù)本發(fā)明的一個方面,提供了一種控件內容展現(xiàn)方法,包括對要展現(xiàn)的控件內容進行分析,獲得該控件內容的基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息;基于所獲得的基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息,從樣式對象管理單元中獲取與所獲得的基礎控件屬性信息或關聯(lián)信息相對應的樣式對象;以及基于所獲取的樣式對象,繪制所述控件內容中的基礎控件進行展現(xiàn),其中,所述樣式對象是在啟動時對所加載的樣本配置文件進行解析而生成的,并且與基礎控件屬性信息或基礎控件屬性信息的關聯(lián)信息相關聯(lián)地存儲在所述樣式對象管理單元中。在上述方面的一個或多個示例中,所述基礎控件屬性信息的關聯(lián)信息可以是與所述基礎控件屬性信息對應的樣式對象名稱。在上述方面的一個或多個示例中,所述基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息可以是通過對所述控件內容的源代碼進行分析后獲得的。在上述方面的一個或多個示例中,在要展現(xiàn)的控件內容包括多個控件時,基于所獲取的樣式對象,繪制所述控件內容中的基礎控件進行展現(xiàn)的步驟還可以包括對要展現(xiàn)的控件內容的源代碼進行分析,以獲得多個控件的層次關系信息;以及基于所獲得的多個 控件的層次關系信息以及多個控件的基礎控件的樣式對象,繪制所述要展現(xiàn)的控件內容中的各個基礎控件進行展現(xiàn)。在上述方面的一個或多個示例中,在所述控件內容還包括專用控件內容時,所述方法還可以包括在完成所述控件內容中的基礎控件的繪制之后,基于在對所述控件內容進行分析時獲得的專用控件內容信息,利用所編制的專用繪圖邏輯代碼,在所述基礎控件的基礎上繪制專用控件內容。在上述方面的一個或多個示例中,在當前展現(xiàn)的控件內容中的部分控件的內容發(fā)生變化時,則僅僅重新獲取內容發(fā)生變化的控件的樣式對象,并利用重新獲取的樣式對象對發(fā)生變化的控件進行重新繪制。在上述方面的一個或多個示例中,所述樣式對象是皮膚樣式對象。根據(jù)本發(fā)明的另一方面,提供了一種控件內容展現(xiàn)裝置,包括分析單元,用于對要展現(xiàn)的控件內容進行分析,獲得該控件內容的基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息;樣式對象生成單元,用于對啟動時加載的樣本配置文件進行解析,生成樣式對象;樣式對象管理單元,用于將所生成的樣式對象與基礎控件屬性信息或基礎控件屬性信息的關聯(lián)信息相關聯(lián)地存儲;獲取單元,用于基于所獲得的基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息,從樣式對象管理單元中獲取與所獲得的基礎控件屬性信息或關聯(lián)信息相對應的樣式對象;以及基礎控件繪制單元,用于基于所獲取的樣式對象,繪制所述控件內容中的基礎控件進行展現(xiàn)。在上述方面的一個或多個示例中,所述基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息是通過對所述控件內容的源代碼進行分析后獲得的。在上述方面的一個或多個示例中,在要展現(xiàn)的控件內容包括多個控件時,所述控件內容展現(xiàn)裝置還可以包括層次關系獲取單元,用于對要展現(xiàn)的控件內容的源代碼進行分析,以獲得多個控件的層次關系信息,其中所述基礎控件繪制單元基于所獲得的多個控件的層次關系信息以及多個控件的基礎控件的樣式對象,繪制所述要展現(xiàn)的控件內容中的各個基礎控件進行展現(xiàn)。在上述方面的一個或多個示例中,在所述控件內容還包括專用控件內容時,所述控件內容展現(xiàn)裝置還可以包括專用控件內容繪制單元,用于在所述基礎控件單元完成所述控件內容中的基礎控件的繪制之后,基于在對所述控件內容進行分析時獲得的專用控件內容信息,利用所編制的專用繪圖邏輯代碼,在所述基礎控件的基礎上繪制專用控件內容。根據(jù)本發(fā)明的另一方面,提供了一種移動終端,包括如上所述的控件內容展現(xiàn)裝置。 利用上述根據(jù)本發(fā)明的控制內容展現(xiàn)方法及控件內容展現(xiàn)裝置,可以預先構建基礎構件繪圖邏輯并生成基礎構件的樣式對象保存在樣式對象數(shù)據(jù)庫中,從而使得在進行控件內容展現(xiàn)時,只需要從所存儲的樣式對象數(shù)據(jù)庫中獲取對應的樣式對象進行繪制,而無需編程人員重新編制基礎構件代碼以及在繪制基礎構件時重新編譯代碼,從而節(jié)約了開發(fā)時間。 此外,按照本發(fā)明的控件內容展現(xiàn)方法,如果包含多個控件的要展示的控件內容中的部分控件發(fā)生變化,則可以針對發(fā)生變化的控件進行調整,而無需對整個控件內容進行調整或重新編制代碼,從而增強了擴展性。此外,在控件內容具有專用控件內容的情況下,編程人員僅僅需要編制控件內容中的專用控件內容的代碼,而無需編制基礎控件內容的代碼,也就是,編程人員僅僅需要了解專用控件內容以及整個控件的展示流程,從而降低了學習成本。為了實現(xiàn)上述以及相關目的,本發(fā)明的一個或多個方面包括后面將詳細說明并在權利要求中特別指出的特征。下面的說明以及附圖詳細說明了本發(fā)明的某些示例性方面。然而,這些方面指示的僅僅是可使用本發(fā)明的原理的各種方式中的一些方式。此外,本發(fā)明旨在包括所有這些方面以及它們的等同物。


根據(jù)下述參照附圖進行的詳細描述,本發(fā)明的上述和其他目的、特征和優(yōu)點將變得更加顯而易見。在附圖中圖I示出了現(xiàn)有的移動終端瀏覽器的圖形用戶界面的示例示意圖;圖2示出了根據(jù)本發(fā)明的實施例的用于展現(xiàn)瀏覽器控件內容的控件內容展現(xiàn)方法的流程圖;圖3例示了根據(jù)本發(fā)明的控件內容展現(xiàn)方法繪制的界面對話框的示例的示意圖;圖4A和4B分別例示了利用本發(fā)明的控件內容展現(xiàn)方法進行樣式切換之前的界面以及樣式切換之后的界面;圖5示出了根據(jù)本發(fā)明的實施例的用于展現(xiàn)瀏覽器控件內容的控件內容展現(xiàn)裝置的方框示意圖;和圖6示出了具有控件內容展現(xiàn)裝置的移動終端的方框示意圖。在所有附圖中相同的標號指示相似或相應的特征或功能。
具體實施例方式以下將結合附圖對本發(fā)明的具體實施例進行詳細描述。在對本發(fā)明的各個實施例進行描述之前,首先對本發(fā)明中涉及的幾個概念進行簡單的說明。術語“基礎控件內容”是指某一類控件內容所共有的控件內容。
術語“專用控件內容”是指個體控件內容所特有的控件內容,該控件內容與其它控件內容不同。術語“樣式配置文件”是指用于存儲控件繪圖信息的文件,包含繪圖指令的執(zhí)行順序,布圖信息,繪圖所需的資源名稱以及資源路徑等。術語“樣式對象”是指樣式配置文件的代碼映射,也就是說,是樣式配置文件的代碼實現(xiàn)。圖2示出了根據(jù)本發(fā)明的實施例的用于展現(xiàn)瀏覽器控件內容的控件內容展現(xiàn)方法的流程圖。如圖2所示,首先,在步驟S210,對要展現(xiàn)的控件內容進行分析,獲得該控件內容的基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息。具體地,在一個示例中,對要展現(xiàn) 的控件內容的源代碼進行分析,以獲得要展現(xiàn)的控件內容的屬性信息。此外,在另一示例中,在要展現(xiàn)的控件內容除了基礎控件內容之外,還包括專用控件內容,即,該控件所特有的控件內容,在對要展現(xiàn)的控件內容進行分析時,還獲取該控件內容的專用控件屬性信息。此外,在要展現(xiàn)的控件內容包含多個控件時,在對源代碼進行分析時,除了獲取各個控件的基礎控件屬性信息和/或專用控件屬性信息之外,還包括獲取各個控件之間的層次關系信息,通常,所述層次關系信息例如是嵌套包含信息,也就是說,各個控件之間的相互嵌套關系。此外,所述基礎控件屬性信息的關聯(lián)信息例如可以是與該基礎控件屬性信息對應的樣本對象名稱。所述樣式配置文件通常根據(jù)預先設定的控件屬性信息預先編制并以樣式配置文件數(shù)據(jù)庫的形式存儲在樣式配置文件存儲單元中。所述樣本配置文件與基礎控件配置信息或其關聯(lián)信息相關聯(lián)地存儲在樣式配置文件數(shù)據(jù)庫中。所述樣式配置文件通常為XML (extensible Markup Language,擴展標記語言)文件。擴展標記語言XML是一種簡單的數(shù)據(jù)存儲語言,使用一系列簡單的標記描述數(shù)據(jù),而這些數(shù)據(jù)可以用方便的形式建立。通過使用XML格式,使得樣式配置文件可以通過專門的XML文件編寫器進行編寫,同時,樣式配置文件也具有了 XML本身帶來的優(yōu)勢,如容易編寫,有很強的擴展性和通用性。此外,所述樣式配置文件也可以是json(JavaScript Object Notation)文件在獲取要展現(xiàn)的控件內容的基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息后,在步驟S220,基于所獲得的基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息,從樣式對象管理單元中獲取與所獲得的基礎控件屬性信息或關聯(lián)信息相對應的樣式對象;其中,所述樣式對象是在啟動時對所加載的樣式配置文件進行解析而生成的,并且與基礎控件屬性信息或基礎控件屬性信息的關聯(lián)信息相關聯(lián)地存儲在所述樣式對象管理單元中。然后,在步驟S230,基于所取回的樣式對象,繪制所述控件內容中的基礎控件進行展現(xiàn)。此外,在一個優(yōu)選示例中,在所述控件內容還包括專用控件內容時,在步驟S240,在完成所述控件內容中的基礎控件的繪制之后,利用該要展現(xiàn)的控件內容的源代碼中的所編制的專用繪圖邏輯代碼,在所述基礎控件的基礎上繪制專用控件內容。此外,在另一優(yōu)選示例中,在要展現(xiàn)的控件內容包括多個控件時,基于所生成的樣式對象,繪制所述控件內容中的基礎控件進行展現(xiàn)的步驟S230的步驟還包括對要展現(xiàn)的控件內容的源代碼進行分析,以獲得多個控件的層次關系信息,然后,基于所獲得的多個控件的層次關系信息以及多個控件的基礎控件的樣式對象,繪制所述要展現(xiàn)的控件內容中的各個基礎控件進行展現(xiàn)。圖3例示了根據(jù)本發(fā)明的控件內容展現(xiàn)方法繪制的界面對話框的示例的示意圖,該示例針對控件內容只包括一個基礎控件內容,即消息對話框。圖3所不的對話框的樣式配置文件為MessageDialog. xml。MessageDialog. xml中包含若干基礎控件的屬性信息,主要是對話框背景圖片,對話框標題圖標,標題文字字體,顏色,對話框消息體文字字體、字體顏色,按鈕的背景,按鈕字體、字體顏色等等。MessageDialog. xml 的一種實現(xiàn)可以如下
<MessageDialog>
<Background>msgDialog.png</Background>
<Title>
<Icon>infoIcon .png</Icon>
<Message> UC如何為您節(jié)省流量</Message>
<F ont>Tahoma</F ont>
<Color>OxFFFFFF </Color〉
〈/Title〉
〈Content〉
<ScrollWidget>放置圖片的另外一個控件</ScrollWidget>
<Message>圖片質量無圖(最省)< 低彩 < 標準 < 全彩〈/Message〉
〈F ont>Tahoma</F ont>
<Color>OxFFFFFF </Color〉
〈/Content〉
〈Button〉取消〈/Button〉
</MessageDialog>當在代碼中創(chuàng)建對話框時,會將樣式配置文件的名字與其控件自身的屬性Style綁定起來C++實現(xiàn)的部分代碼如下I、控件進行初始化時Il控件的初始化函數(shù) Void init()
{
//將控件的“樣式”這個屬性跟樣式文件綁定起來setStyleName("MessageDialog.xml");
//完成剩余初始化操作
}
Il setStyleName主要功能是將樣式文件名稱保存下來 Void setStyleName(const String& name)
{
mstyleName = name;
}2、當對話框即將顯示出來的時候,會通過Style屬性進行加載樣式配置文件,對
所加載的樣式配置文件進行解析,從而生成樣式對象,并存儲在樣式對象管理單元中
Il控件即將顯示出來時候的回調 Void before ShowOn Screen(){
//先從樣式對象管理單元(例如,樣式配置文件數(shù)據(jù)庫)查找相應的樣式對象,如果找到,則直接適用
m—styleObj = StylePool: :getInstance()->getStyleObj(m_styleName); if (!m—styleObj)
{
//將樣式配置文件加載進內存、解析,產生樣式對象集合 mstyleObj = loadStyle(mstyle);
Il將樣式對象存放進樣式對象管理單元
StylePool: :getInstance()->push(m_styleName,m_styleObj);
}
Il執(zhí)行剩余操作
}
3、在基于控件內容的基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息,例如,樣式對象或樣式配置文件的名稱,從樣式對象管理單元獲取樣式對象后,控件將樣式對象及自身句柄交給樣式引擎(例如,繪制單元),利用繪制單元進行繪制
//樣式文件加載、解析完成的回調 Void onStyleLoadedQ {
Il控件將樣式對象及自身句柄交由樣式引擎 Il樣式引擎進行具體的繪圖操作StyleEngine: :instance()->draw(m_styleObj,this);
Il執(zhí)行剩余操作
}4、在樣式引擎(即,繪制單元)繪制完成后,可將對話框顯示出來。圖4A和4B分別例示了利用本發(fā)明的控件內容展現(xiàn)方法進行樣式切換之前的界面以及樣式切換之后的界面。在圖4A和圖4B中示出的示例中,所示出的界面都包含有多個控件內容,而且與圖4A相比,圖4B的區(qū)別僅僅在與控件的皮膚不同,也就是說圖4中涉及的是皮膚樣式對象切換過程。這里,對于需要實現(xiàn)換膚的控件,需要準備多份樣式配置文件;而對于不需要實現(xiàn)換膚的控件,只需要準備一份缺省的樣式文件即可。圖4A中示出的界面的對應樣式配置文件集合為DefaultTheme. xml,圖4B中示出的界面的對應樣式配置文件集合為BlackboardTheme. xml。DefaultTheme. xml是編譯于程序安裝包中的,而BlackboardTheme. xml則是通過互聯(lián)網下載到移動終端的存儲設備。DefaultTheme. xml與BlackboardTheme. xml的格式非常相似,都包含頭信息與若干個獨立
的樣式配置文件,其中一個可能的實現(xiàn)方式如下
<Theme>
<ThemeInfo>
<Name>Default</Name>
〈Version〉I I〈/Version〉
<!-還有其他的皮膚文件頭信息,不作詳述--> </ThemeInfo>

<!-以下為組成皮膚的組件-->
〈Components〉
< S e ar chAndlMB 部的地址搜索欄的樣式文件</S e ar chAndlMB ar><WebWindow>中部整個網頁導航窗體的樣式文件</Web Window><100出31'>底部工具欄的樣式文件</ToolBar>
<!-還有其他的組件,不作詳述-->
〈/Components〉
<Theme>I、在用戶觸發(fā)切換樣式(S卩,界面中的控件的皮膚)的事件時,瀏覽器會清空當前樣式對象管理單元中的樣式對象。
Il用戶切換樣式的時候,樣式對象管理單元的clearStyle Void clearStyleCache()
{
Il清空存放樣式對象的容器styleObj ectContainer. clear();
}這里,樣式對象管理單元的更新可以存在兩種實現(xiàn)方式。第一種情形是,在進行樣式切換的時候,可以一次性清空原有的全部樣式,重新加載新的樣式。這種情形對應的是針對全部樣式進行樣式切換的情形。在這種情況下,由于UC瀏覽器的樣式切換是針對全部樣式的,因此在實現(xiàn)時,會清空全部樣式。也就是說,樣式的切換是以一整套樣式為最小單位。然而,上述僅僅是本發(fā)明的一種實現(xiàn)方式。在第二種情況(即,另一實現(xiàn)方式)下,在進行樣式切換的時候,可以在加載新的樣式文件過程中,對于新樣式文件有的樣式對象進行替換更新,對于新樣式沒有的但缺省樣式用的樣式對象,則可以維持不變,即,不全部清空樣式管理單元中的樣式對象。也就是說,可以分界面進行樣式切換,換言之,僅僅對一個界面上的樣式進行切換,或者對于一個界面上的部分樣式進行切換,在這種情況下,僅僅清空當前樣式對象管理單元中與該界面或該界面的部分樣式對應的樣式對象。從上面可以看出,這兩種方式的不同之處在于,在讀取查找樣式配置文件的時候,方法I如果在新樣式找不到相關的樣式文件,會去缺省樣式文件查找;而方法2則不會。2、接著,對于不是正在顯示的界面(即,不需要進行皮膚切換的界面),由于不需要進行皮膚切換,所以樣式切換對于這些界面沒有任何影響,由此這些界面也不需要對樣式切換做任何的回應。也就是說,對于沒有變化的控件,不需要重新獲取樣式對象進行繪制。這對應于分界面進行樣式切換的情形。3、對于正在顯示的界面(即,需要進行皮膚切換的界面,換言之,需要進行皮膚切、換的控件),會觸發(fā)一個onThemeChange的事件,onThemeChange主要負責樣式引擎的資源重新加載及刷新繪圖,也就是說,重新獲取該界面(控件內容)的繪圖邏輯(即,樣式對象),該事件的執(zhí)行如下
Il如果控件正在顯示,切換樣式的時候onThemeChange會被調用 Void onThemeChange()
{
//先從樣式對象管理單元查找相應的樣式對象,如果找到,則直接適用
mstyleObj = StylePool: :getInstance()->getStyl eObj(m_styleName); if (!m styleObj)
{
//將樣式配置文件加載進內存、解析,產生樣式對象集合 mstyleObj = loadStyle(mstyle);
Il將樣式對象存放進樣式對象管理單元
StylePool: :getInstance()->push(m_styleName,m_styleObj);
}
StyleEngine: :instance()->draw(m_styleObj,this);
Il執(zhí)行剩余操作
}換言之,在上面的步驟中,對于需要進行皮膚切換的界面(即,要修改的控件),修改和存儲該界面中的控件的樣式配置文件,而后將修改后的樣式配置文件加載到內存中進行解析而生成樣式對象集合,并將生成的樣式對象存儲在樣式對象管理單元中。要說明的是,這里的步驟是進行樣式切換之前執(zhí)行的步驟。也就是說,在進行樣式切換之前,就已經對樣式配置文件完成修改和存儲,并且在啟動時通過對所加載的修改后的樣式配置文件進行解析而得到修改后的樣式對象,并存儲在樣式對象管理單元中。這樣,在進行樣式切換時,就可以簡單地從樣式對象管理單元中獲取對應的樣式對象。4、界面在onThemeChange方法執(zhí)行后更新當前的樣式對象,然后將更新后的樣式對象傳遞給樣式引擎(繪制單元)進行重畫,刷新,并重新顯示出來,從而完成樣式的動態(tài)切換。這里,圖4中的步驟4是和圖3中的步驟3是對應的。圖4中的步驟3與圖3中的步驟2對應,用于加載生成和存儲,但兩者樣式對象加載的時機不一樣。圖3中的步驟2對應于對話框從無到有的過程,其在顯示前一刻加載;而圖4的步驟3對應于對正在顯示的界面進行皮膚樣式切換的過程,其在促發(fā)換膚時加載。從上面可以看出,在針對已經展現(xiàn)的包括多個控件的控件內容進行重新展現(xiàn)時,如果僅僅部分控件的內容發(fā)生變化,例如,上述的換膚變化,則僅僅需要重新獲取內容發(fā)生變化的控件的樣式對象,并由原有的繪制單元利用所獲取的樣式對象進行控件繪制。在這種情況下,無需對沒有變化的控件進行任何處理,而且原有的繪制單元的繪制代碼也不會發(fā)生改變。如上參考圖2到圖4B描述了本發(fā)明的控件內容展現(xiàn)方法,本發(fā)明的上述控件內容展現(xiàn)方法,可以采用軟件實現(xiàn),也可以采用硬件實現(xiàn),或采用軟件和硬件組合的方式實現(xiàn)。圖5示出了根據(jù)本發(fā)明的實施例的用于展現(xiàn)瀏覽器控件內容的控件內容展現(xiàn)裝置500的方框不意圖。
如圖5所示,控件內容展現(xiàn)裝置500包括分析單元510、獲取單元520、基礎控件繪制單元530、樣式對象生成單元540以及樣式對象管理單元550。分析單元510用于對要展現(xiàn)的控件內容進行分析,獲得該控件內容的基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息。樣式對象生成單元540用于對啟動時所加載的樣式配置文件進行解析,生成樣式對象。樣式對象管理單元550用于將所生成的樣式對象與基礎控件屬性信息或基礎控件屬性信息的關聯(lián)信息相關聯(lián)地存儲。獲取單元520用于基于所獲得的基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息,從樣式對象管理單元中獲取與所獲得的基礎控件屬性信息或關聯(lián)信息相對應的樣式對象。基礎控件繪制單元530用于基于所獲取的樣式對象,繪制所述控件內容中的基礎控件進行展現(xiàn)。在另一示例中,在要展現(xiàn)的控件內容包括多個控件時,所述控件內容展現(xiàn)裝置500還可以包括層次關系獲取單元(未示出),用于對要展現(xiàn)的控件內容的源代碼進行分析,以獲得多個控件的層次關系信息。所述基礎控件繪制單元530基于所獲得的多個控件的層次關系信息以及多個控件的基礎控件的樣式對象,繪制所述要展現(xiàn)的控件內容中的各個基礎控件進行展現(xiàn)。此外,在另一示例中,在所述控件內容還包括專用控件內容時,所述控件內容展現(xiàn)裝置500還可以包括專用控件內容繪制單元(未示出),用于在所述基礎控件單元530完成所述控件內容中的基礎控件的繪制之后,基于所述分析單元510在對所述控件內容分析時獲得的專用控件內容信息,利用所編制的專用繪圖邏輯代碼,在所述基礎控件的基礎上繪制專用控件內各。在本發(fā)明中,瀏覽器啟動時,加載樣式配置文件并對所加載的樣式配置文件進行解析,生成樣式對象,并統(tǒng)一存儲在樣式對象管理單元中。然后,當控件需要顯示到用戶界面時,先根據(jù)自身的屬性域,即使用到的樣式對象名字,在樣式對管理單元尋找對應的樣式對象。在找到對應的樣式對象后,將樣式對象與自身的句柄傳遞給繪制單元,繪制單元取得樣式對象以及控件句柄后,根據(jù)對象內容進行繪圖操作,繪圖完成之后,將結果通過控件句柄返回給控件,并將程序執(zhí)行控制權一并返還給控件。在控件獲取到控制權,完成繪圖額外操作及剩余業(yè)務邏輯后,進入系統(tǒng)的繪圖事件循環(huán),在繪圖操作下一次刷新的時候,即可將控件繪制到顯示設備上面。利用本發(fā)明的控件內容展現(xiàn)方法及裝置,預先構建基礎構件繪圖邏輯并生成基礎構件的樣式對象保存在樣式對象數(shù)據(jù)庫中,從而使得在進行控件內容展現(xiàn)時,只需要從所存儲的樣式對象數(shù)據(jù)庫中取回對應的樣式對象進行繪制,而無需編程人員重新編制基礎構件代碼以及在繪制基礎構件時重新編譯代碼,從而節(jié)約了開發(fā)時間。此夕卜,按照本發(fā)明的控件內容展現(xiàn)方法,如果包含多個控件的要展示的控件內容中的部分控件發(fā)生變化,則可以針對發(fā)生變化的控件進行調整,而無需對整個控件內容進行調整或重新編制代碼,從而增強了擴展性。此外,在控件內容具有專用控件內容的情況下,編程人員僅僅需要編制控件內容中的專用控件內容的代碼,而無需編制基礎控件內容的代碼,也就是,編程人員僅僅需要了解專用控件內容以及整個控件的展示流程,從而降低了學習成本。從上面可以看出,繪圖邏輯(即,樣式對象)被預先動態(tài)地創(chuàng)建,并且統(tǒng)一存儲在樣式對象管理單元中。在這種情況下,繪圖邏輯與對應的控件是分離的,在繪制控件內容時,只需了解繪圖邏輯與控件的關聯(lián)關系,就可以找到對應的繪圖邏輯進而繪制出該控件,而無需熟悉該控件的繪圖代碼,從而使得技術人員的學習成本降低。此外,在本發(fā)明中,繪圖邏輯和繪圖代碼是分離的。由此,在繪圖邏輯發(fā)生變化時,可以通過修改樣式配置文件來修改控件的樣式對象,進而利用修改后的樣式對象來繪制出變化后的控件,而無需在繪圖邏輯發(fā)生改變后,重新編制和編譯繪圖代碼。圖6是具有根據(jù)本發(fā)明的控件內容展現(xiàn)裝置500的移動終端10的方框示意圖。如 圖6所示,移動終端10包括如上所述的控件內容展現(xiàn)裝置500。很顯然,圖6中的控件內容展現(xiàn)裝置也可以包括圖5中示出的控件內容展現(xiàn)裝置500的各種變型。此外,典型地,本發(fā)明所述的移動終端可為各種手持終端設備,例如手機、個人數(shù)字助理(PDA)等,因此本發(fā)明的保護范圍不應限定為某種特定類型的移動終端。此外,根據(jù)本發(fā)明的方法還可以被實現(xiàn)為由CPU執(zhí)行的計算機程序。在該計算機程序被CPU執(zhí)行時,執(zhí)行本發(fā)明的方法中限定的上述功能。此外,上述方法步驟以及系統(tǒng)單元也可以利用控制器(例如,處理器)以及用于存儲使得控制器實現(xiàn)上述步驟或單元功能的計算機程序的計算機可讀存儲設備實現(xiàn)。此外,應該明白的是,本文所述的計算機可讀存儲設備(例如,存儲器)可以是易失性存儲器或非易失性存儲器,或者可以包括易失性存儲器和非易失性存儲器兩者。作為例子而非限制性的,非易失性存儲器可以包括只讀存儲器(ROM)、可編程ROM(PROM)、電可編程ROM(EPROM)、電可擦寫可編程ROM(EEPROM)或快閃存儲器。易失性存儲器可以包括隨機存取存儲器(RAM),該RAM可以充當外部高速緩存存儲器。作為例子而非限制性的,RAM可以以多種形式獲得,比如同步RAM (DRAM)、動態(tài)RAM (DRAM)、同步DRAM (SDRAM)、雙數(shù)據(jù)速率 SDRAM (DDR SDRAM)、增強 SDRAM (ESDRAM)、同步鏈路 DRAM (SLDRAM)以及直接 RambusRAM(DRRAM)。所公開的方面的存儲設備意在包括但不限于這些和其它合適類型的存儲器。本領域技術人員還將明白的是,結合這里的公開所描述的各種示例性邏輯塊、模塊、電路和算法步驟可以被實現(xiàn)為電子硬件、計算機軟件或兩者的組合。為了清楚地說明硬件和軟件的這種可互換性,已經就各種示意性組件、方塊、模塊、電路和步驟的功能對其進行了一般性的描述。這種功能是被實現(xiàn)為軟件還是被實現(xiàn)為硬件取決于具體應用以及施加給整個系統(tǒng)的設計約束。本領域技術人員可以針對每種具體應用以各種方式來實現(xiàn)所述的功能,但是這種實現(xiàn)決定不應被解釋為導致脫離本發(fā)明的范圍。結合這里的公開所描述的各種示例性邏輯塊、模塊和電路可以利用被設計成用于執(zhí)行這里所述功能的下列部件來實現(xiàn)或執(zhí)行通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或其它可編程邏輯器件、分立門或晶體管邏輯、分立的硬件組件或者這些部件的任何組合。通用處理器可以是微處理器,但是可替換地,處理器可以是任何傳統(tǒng)處理器、控制器、微控制器或狀態(tài)機。處理器也可以被實現(xiàn)為計算設備的組合,例如,DSP和微處理器的組合、多個微處理器、一個或多個微處理器結合DSP核、或任何其它這種配置。結合這里的公開所描述的方法或算法的步驟可以直接包含在硬件中、由處理器執(zhí)行的軟件模塊中或這兩者的組合中。軟件模塊可以駐留在RAM存儲器、快閃存儲器、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、可移動盤、CD-ROM、或本領域已知的任何其它形式的存儲介質中。示例性的存儲介質被耦合到處理器,使得處理器能夠從該存儲介質中讀取信息或向該存儲介質寫入信息。在一個替換方案中,所述存儲介質可以與處理器集成在一起。處理器和存儲介質可以駐留在ASIC中。ASIC可以駐留在用戶終端中。在一個替換方案中,處理器和存儲介質可以作為分立組件駐留在用戶終端中。如上參照附圖以示例的方式描述根據(jù)本發(fā)明的實施例。但是,本領域技術人員應當理解,對于本發(fā)明的上述實施例,還可以在不脫離本發(fā)明內容的基礎上做出各種改進。因此,本發(fā)明的保護范圍應當由所附的權利要求書的內容確定。權利要求
1.一種控件內容展現(xiàn)方法,包括 對要展現(xiàn)的控件內容進行分析,獲得該控件內容的基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息; 基于所獲得的基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息,從樣式對象管理單元中獲取與所獲得的基礎控件屬性信息或關聯(lián)信息相對應的樣式對象;以及 基于所獲取的樣式對象,繪制所述控件內容中的基礎控件進行展現(xiàn), 其中,所述樣式對象是在啟動時對所加載的樣式配置文件進行解析而生成的,并且與基礎控件屬性信息或基礎控件屬性信息的關聯(lián)信息相關聯(lián)地存儲在所述樣式對象管理單元中。
2.如權利要求I所述的方法,其中,所述基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息是通過對所述控件內容的源代碼進行分析后獲得的,并且所述基礎控件屬性信息的關聯(lián)信息是與所述基礎控件屬性信息對應的樣式對象名稱。
3.如權利要求I所述的方法,其中,在要展現(xiàn)的控件內容包括多個控件時,基于所獲取的樣式對象,繪制所述控件內容中的基礎控件進行展現(xiàn)的步驟還包括 對要展現(xiàn)的控件內容的源代碼進行分析,以獲得多個控件的層次關系信息;以及 基于所獲得的多個控件的層次關系信息以及多個控件的基礎控件的樣式對象,繪制所述要展現(xiàn)的控件內容中的各個基礎控件進行展現(xiàn)。
4.如權利要求I或3所述的方法,其中,在所述控件內容還包括專用控件內容時,所述方法還包括 在完成所述控件內容中的基礎控件的繪制之后,基于在對所述控件內容進行分析時獲得的專用控件內容信息,利用所編制的專用繪圖邏輯代碼,在所述基礎控件的基礎上繪制專用控件內各。
5.如權利要求4所述的方法,其中,在當前展現(xiàn)的控件內容中的部分控件的內容發(fā)生變化時,則僅僅重新獲取內容發(fā)生變化的控件的樣式對象,并利用重新獲取的樣式對象對發(fā)生變化的控件進行重新繪制。
6.如權利要求5所述的方法,其中,所述樣式對象是皮膚樣式對象。
7.一種控件內容展現(xiàn)裝置,包括 分析單元,用于對要展現(xiàn)的控件內容進行分析,獲得該控件內容的基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息; 樣式對象生成單元,用于對啟動時加載的樣式配置文件進行解析,生成樣式對象; 樣式對象管理單元,用于將所生成的樣式對象與基礎控件屬性信息或基礎控件屬性信息的關聯(lián)信息相關聯(lián)地存儲; 獲取單元,用于基于所獲得的基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息,從樣式對象管理單元中獲取與所獲得的基礎控件屬性信息或關聯(lián)信息相對應的樣式對象;以及 基礎控件繪制單元,用于基于所獲取的樣式對象,繪制所述控件內容中的基礎控件進行展現(xiàn)。
8.如權利要求7所述的控件內容展現(xiàn)裝置,其中,所述基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息是通過對所述控件內容的源代碼進行分析后獲得的。
9.如權利要求7所述的控件內容展現(xiàn)裝置,其中,在要展現(xiàn)的控件內容包括多個控件時,所述控件內容展現(xiàn)裝置還包括 層次關系獲取單元,用于對要展現(xiàn)的控件內容的源代碼進行分析,以獲得多個控件的層次關系信息, 所述基礎控件繪制單元基于所獲得的多個控件的層次關系信息以及多個控件的基礎控件的樣式對象,繪制所述要展現(xiàn)的控件內容中的各個基礎控件進行展現(xiàn)。
10.如權利要求7或9所述的控件內容展現(xiàn)裝置,其中,在所述控件內容還包括專用控件內容時,所述控件內容展現(xiàn)裝置還包括 專用控件內容繪制單元,用于在所述基礎控件單元完成所述控件內容中的基礎控件的繪制之后,基于在對所述控件內容進行分析時獲得的專用控件內容信息,利用所編制的專用繪圖邏輯代碼,在所述基礎控件的基礎上繪制專用控件內容。
11.一種移動終端,包括如權利要求7到10中任何一個所述的控件內容展現(xiàn)裝置。
全文摘要
本發(fā)明提供了一種控件內容展現(xiàn)方法,包括對要展現(xiàn)的控件內容進行分析,獲得該控件內容的基礎控件屬性信息或該基礎控件屬性信息的關聯(lián)信息;基于所獲得的基礎控件屬性信息或關聯(lián)信息,從樣式對象管理單元中獲取與所獲得的基礎控件屬性信息或關聯(lián)信息相對應的樣式對象;以及基于所獲取的樣式對象,繪制所述控件內容中的基礎控件進行展現(xiàn),其中,樣式對象是在啟動時對所加載的樣式配置文件進行解析而生成的,并且與基礎控件屬性信息或關聯(lián)信息相關聯(lián)地存儲在樣式對象管理單元中。利用該方法,使得在進行控件內容展現(xiàn)時,只需要從所存儲的樣式對象數(shù)據(jù)庫中取回對應的樣式對象進行繪制,而無需重新編制和編譯基礎構件代碼。
文檔編號G06F9/44GK102646038SQ20121004900
公開日2012年8月22日 申請日期2012年2月28日 優(yōu)先權日2012年2月28日
發(fā)明者梁傳敏, 梁捷 申請人:廣州市動景計算機科技有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1