本發(fā)明涉及互聯(lián)網(wǎng)應(yīng)用技術(shù)領(lǐng)域,特別是一種圖片顯示方法及裝置。
背景技術(shù):
隨著技術(shù)的快速發(fā)展,人們?cè)絹碓蕉嗟囊蕾嚱K端(如電腦、手機(jī)等)瀏覽新聞、圖片,進(jìn)行社交互動(dòng)等。
相關(guān)技術(shù)中,在終端顯示圖片時(shí),通過圖片顯示組件來完成,并且針對(duì)在頁面上不同的圖片布局方式,需要開發(fā)人員開發(fā)不同的圖片顯示組件,這樣可能存在重復(fù)性勞動(dòng),無通用性,開發(fā)效率低。例如,在通過瀑布流的形式顯示圖片時(shí),如果是橫向的瀑布流形式,則需要調(diào)用橫向瀑布流顯示組件;如果是縱向的瀑布流形式,則需要調(diào)用縱向瀑布流顯示組件??梢?,目前的圖片顯示組件重,代碼耦合度高,不易維護(hù)和迭代。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的圖片顯示方法及相應(yīng)的裝置。
依據(jù)本發(fā)明的一方面,提供了一種圖片顯示方法,適用于將用于顯示圖片的圖片顯示組件按照功能至少拆分成用于管理圖片數(shù)據(jù)的數(shù)據(jù)管理器、用于加載圖片數(shù)據(jù)的圖片加載器以及用于在頁面上渲染圖片的圖片渲染器的情況,所述方法包括:
當(dāng)接收到顯示圖片的請(qǐng)求時(shí),調(diào)用所述數(shù)據(jù)管理器在圖片存儲(chǔ)器中查找一個(gè)或多個(gè)待顯示圖片,并獲取各待顯示圖片的圖片數(shù)據(jù);
調(diào)用所述圖片加載器將所述各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中;
調(diào)用所述圖片渲染器對(duì)所述各待顯示圖片的圖片數(shù)據(jù)進(jìn)行顯示處理,并在頁面上對(duì)所述各待顯示圖片的圖片數(shù)據(jù)進(jìn)行渲染,并顯示渲染后的圖片。
可選地,調(diào)用所述數(shù)據(jù)管理器在圖片存儲(chǔ)器中查找一個(gè)或多個(gè)待顯示圖片,包括:
解析所述請(qǐng)求,得到所述一個(gè)或多個(gè)待顯示圖片的標(biāo)識(shí);
調(diào)用所述數(shù)據(jù)管理器在圖片存儲(chǔ)器中查找所述標(biāo)識(shí)對(duì)應(yīng)的所述一個(gè)或多個(gè)待顯示圖片。
可選地,所述方法還包括:
解析所述請(qǐng)求,獲取在頁面上對(duì)所述一個(gè)或多個(gè)待顯示圖片進(jìn)行布局的圖片布局信息;或者
獲取預(yù)先設(shè)置的在頁面上對(duì)圖片進(jìn)行布局的圖片布局信息。
可選地,調(diào)用所述圖片渲染器對(duì)所述各待顯示圖片的圖片數(shù)據(jù)進(jìn)行顯示處理,包括:
在多個(gè)具有不同渲染功能的圖片渲染器中,查找與所述圖片布局信息對(duì)應(yīng)的圖片渲染器;
調(diào)用查找到的所述圖片渲染器對(duì)所述各待顯示圖片的圖片數(shù)據(jù)進(jìn)行顯示處理。
可選地,所述多個(gè)具有不同渲染功能的圖片渲染器包括:
橫向圖片流渲染器、縱向圖片流渲染器、指定形狀的圖片流渲染器。
可選地,所述獲取各待顯示圖片的圖片數(shù)據(jù)之后,所述方法還包括:
獲取所述各待顯示圖片的尺寸大小,以及獲取頁面上圖片顯示區(qū)域的尺寸大??;
將所述各待顯示圖片的尺寸與所述圖片顯示區(qū)域的尺寸進(jìn)行比較;
若所述各待顯示圖片的尺寸大于所述圖片顯示區(qū)域的尺寸,則根據(jù)所述圖片顯示區(qū)域的尺寸縮小所述各待顯示圖片的尺寸。
可選地,調(diào)用所述圖片加載器將所述各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中,包括:
調(diào)用所述圖片加載器,將縮小尺寸后的所述各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中。
可選地,調(diào)用所述圖片加載器將所述各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中,包括:
獲取內(nèi)存的當(dāng)前狀態(tài)信息;
調(diào)用所述圖片加載器,根據(jù)所述內(nèi)存的當(dāng)前狀態(tài)信息,依序?qū)⑺龈鞔@示圖片的圖片數(shù)據(jù)加載到內(nèi)存中。
依據(jù)本發(fā)明的另一方面,還提供了一種圖片顯示裝置,包括:
組件拆分模塊,適于將用于顯示圖片的圖片顯示組件按照功能至少拆分成用于管理圖片數(shù)據(jù)的數(shù)據(jù)管理器、用于加載圖片數(shù)據(jù)的圖片加載器以及用于在 頁面上渲染圖片的圖片渲染器,并保存;
圖片數(shù)據(jù)獲取模塊,適于當(dāng)接收到顯示圖片的請(qǐng)求時(shí),調(diào)用所述數(shù)據(jù)管理器在圖片存儲(chǔ)器中查找一個(gè)或多個(gè)待顯示圖片,并獲取各待顯示圖片的圖片數(shù)據(jù);
圖片數(shù)據(jù)加載模塊,適于調(diào)用所述圖片加載器將所述各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中;
圖片顯示模塊,適于調(diào)用所述圖片渲染器對(duì)所述各待顯示圖片的圖片數(shù)據(jù)進(jìn)行顯示處理,并在頁面上對(duì)所述各待顯示圖片的圖片數(shù)據(jù)進(jìn)行渲染,并顯示渲染后的圖片。
可選地,所述圖片數(shù)據(jù)獲取模塊還適于:
解析所述請(qǐng)求,得到所述一個(gè)或多個(gè)待顯示圖片的標(biāo)識(shí);
調(diào)用所述數(shù)據(jù)管理器在圖片存儲(chǔ)器中查找所述標(biāo)識(shí)對(duì)應(yīng)的所述一個(gè)或多個(gè)待顯示圖片。
可選地,所述裝置還包括圖片布局信息獲取模塊,適于:
解析所述請(qǐng)求,獲取在頁面上對(duì)所述一個(gè)或多個(gè)待顯示圖片進(jìn)行布局的圖片布局信息;或者
獲取預(yù)先設(shè)置的在頁面上對(duì)圖片進(jìn)行布局的圖片布局信息。
可選地,所述圖片顯示模塊還適于:
在多個(gè)具有不同渲染功能的圖片渲染器中,查找與所述圖片布局信息對(duì)應(yīng)的圖片渲染器;
調(diào)用查找到的所述圖片渲染器對(duì)所述各待顯示圖片的圖片數(shù)據(jù)進(jìn)行顯示處理。
可選地,所述多個(gè)具有不同渲染功能的圖片渲染器包括:
橫向圖片流渲染器、縱向圖片流渲染器、指定形狀的圖片流渲染器。
可選地,在所述圖片數(shù)據(jù)獲取模塊獲取各待顯示圖片的圖片數(shù)據(jù)之后,所述裝置還包括:
圖片尺寸獲取模塊,適于獲取所述各待顯示圖片的尺寸大小,以及獲取頁面上圖片顯示區(qū)域的尺寸大小;
比較模塊,適于將所述各待顯示圖片的尺寸與所述圖片顯示區(qū)域的尺寸進(jìn)行比較;
調(diào)整模塊,適于若所述各待顯示圖片的尺寸大于所述圖片顯示區(qū)域的尺寸,則根據(jù)所述圖片顯示區(qū)域的尺寸縮小所述各待顯示圖片的尺寸。
可選地,所述圖片數(shù)據(jù)加載模塊還適于:
調(diào)用所述圖片加載器,將縮小尺寸后的所述各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中。
可選地,所述圖片數(shù)據(jù)加載模塊還適于:
獲取內(nèi)存的當(dāng)前狀態(tài)信息;
調(diào)用所述圖片加載器,根據(jù)所述內(nèi)存的當(dāng)前狀態(tài)信息,依序?qū)⑺龈鞔@示圖片的圖片數(shù)據(jù)加載到內(nèi)存中。
在本發(fā)明實(shí)施例中,圖片顯示組件按照功能至少被拆分成用于管理圖片數(shù)據(jù)的數(shù)據(jù)管理器、用于加載圖片數(shù)據(jù)的圖片加載器以及用于在頁面上渲染圖片的圖片渲染器,并保存,拆分得到的組件功能單一且輕量化,易于維護(hù)和迭代。當(dāng)接收到顯示圖片的請(qǐng)求時(shí),本發(fā)明實(shí)施例可以直接調(diào)用數(shù)據(jù)管理器在圖片存儲(chǔ)器中查找一個(gè)或多個(gè)待顯示圖片,并獲取各待顯示圖片的圖片數(shù)據(jù),隨后調(diào)用圖片加載器將各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中,之后調(diào)用圖片渲染器對(duì)各待顯示圖片的圖片數(shù)據(jù)進(jìn)行顯示處理,并在頁面上對(duì)各待顯示圖片的圖片數(shù)據(jù)進(jìn)行渲染,并顯示渲染后的圖片。本發(fā)明實(shí)施例將數(shù)據(jù)管理器和圖片加載器抽象成公共組件,針對(duì)不同的圖片布局方式維護(hù)不同的圖片渲染器,調(diào)用不同的圖片渲染器實(shí)現(xiàn)各自渲染功能,每個(gè)組件功能單一,代碼應(yīng)用高效,組件易于維護(hù)和自由組合,從而解決了相關(guān)技術(shù)中需要開發(fā)人員針對(duì)不同的圖片布局方式開發(fā)相應(yīng)的且完整的圖片顯示組件,存在重復(fù)性勞動(dòng),無通用性,開發(fā)效率低的問題。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
根據(jù)下文結(jié)合附圖對(duì)本發(fā)明具體實(shí)施例的詳細(xì)描述,本領(lǐng)域技術(shù)人員將會(huì)更加明了本發(fā)明的上述以及其他目的、優(yōu)點(diǎn)和特征。
附圖說明
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的圖片顯示方法流程圖;
圖2示出了現(xiàn)有技術(shù)中移動(dòng)搜索端采用瀑布流的布局方式顯示圖片的組件調(diào)用邏輯示意圖;
圖3示出了本發(fā)明實(shí)施例的移動(dòng)搜索端采用瀑布流的布局方式顯示圖片的組件調(diào)用邏輯示意圖;
圖4示出了現(xiàn)有技術(shù)中PC搜索端采用瀑布流的布局方式顯示圖片的組件調(diào)用邏輯示意圖;
圖5示出了本發(fā)明實(shí)施例的PC搜索端采用瀑布流的布局方式顯示圖片的組件調(diào)用邏輯示意圖;以及
圖6示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的圖片顯示裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
如前文所述,相關(guān)技術(shù)中在終端顯示圖片時(shí),通過圖片顯示組件來完成,并且針對(duì)在頁面上不同的圖片布局方式,需要開發(fā)人員開發(fā)不同的圖片顯示組件,這樣可能存在重復(fù)性勞動(dòng),無通用性,開發(fā)效率低。
本發(fā)明實(shí)施例將用于顯示圖片的圖片顯示組件按照功能至少拆分成用于管理圖片數(shù)據(jù)的數(shù)據(jù)管理器、用于加載圖片數(shù)據(jù)的圖片加載器以及用于在頁面上渲染圖片的圖片渲染器,將數(shù)據(jù)管理器和圖片加載器抽象成公共組件,針對(duì)不同的圖片布局方式維護(hù)不同的圖片渲染器,調(diào)用不同的圖片渲染器實(shí)現(xiàn)各自渲染功能,每個(gè)組件功能單一,代碼應(yīng)用高效,組件易于維護(hù)和自由組合。
基于上述經(jīng)拆分得到的各個(gè)組件,本發(fā)明實(shí)施例提供了一種圖片顯示方法,應(yīng)用于終端,如PC(Personal Computer,個(gè)人電腦)、手機(jī)、平板電腦等設(shè)備。圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的圖片顯示方法流程圖。如圖1所示,該方法至少可以包括以下步驟S102至步驟S106:
步驟S102,當(dāng)接收到顯示圖片的請(qǐng)求時(shí),調(diào)用數(shù)據(jù)管理器在圖片存儲(chǔ)器中查找一個(gè)或多個(gè)待顯示圖片,并獲取各待顯示圖片的圖片數(shù)據(jù);
步驟S104,調(diào)用圖片加載器將各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中;
步驟S106,調(diào)用圖片渲染器對(duì)各待顯示圖片的圖片數(shù)據(jù)進(jìn)行顯示處理,并在頁面上對(duì)各待顯示圖片的圖片數(shù)據(jù)進(jìn)行渲染,并顯示渲染后的圖片。
在本發(fā)明實(shí)施例中,拆分得到的組件功能單一且輕量化,易于維護(hù)和迭代,當(dāng)接收到顯示圖片的請(qǐng)求時(shí),本發(fā)明實(shí)施例可以直接調(diào)用數(shù)據(jù)管理器在圖片存儲(chǔ)器中查找一個(gè)或多個(gè)待顯示圖片,并獲取各待顯示圖片的圖片數(shù)據(jù),隨后調(diào)用圖片加載器將各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中,之后調(diào)用圖片渲染器對(duì)各待顯示圖片的圖片數(shù)據(jù)進(jìn)行顯示處理,并在頁面上對(duì)各待顯示圖片的圖片數(shù)據(jù)進(jìn)行渲染,并顯示渲染后的圖片。
上文步驟S102中調(diào)用數(shù)據(jù)管理器在圖片存儲(chǔ)器中查找一個(gè)或多個(gè)待顯示圖片,本發(fā)明實(shí)施例提供了一種可選的方案,在該方案中,可以解析顯示圖片的請(qǐng)求,得到一個(gè)或多個(gè)待顯示圖片的標(biāo)識(shí),進(jìn)而調(diào)用數(shù)據(jù)管理器在圖片存儲(chǔ)器中查找標(biāo)識(shí)對(duì)應(yīng)的一個(gè)或多個(gè)待顯示圖片。在本發(fā)明實(shí)施例中,數(shù)據(jù)管理器管理了圖片的標(biāo)識(shí)與圖片地址的對(duì)應(yīng)關(guān)系,在對(duì)應(yīng)關(guān)系中查找到一個(gè)或多個(gè)待顯示圖片的標(biāo)識(shí)對(duì)應(yīng)的圖片地址,進(jìn)而在圖片存儲(chǔ)器中根據(jù)圖片地址獲取各待顯示圖片的圖片數(shù)據(jù)。
在本發(fā)明一實(shí)施例中,為了在加載圖片數(shù)據(jù)時(shí)減少內(nèi)存的消耗,本發(fā)明實(shí)施例提供了多種可選的方案,下面將分別進(jìn)行詳細(xì)介紹。
方式一,調(diào)整圖片尺寸的方式。即,可以在獲取各待顯示圖片的圖片數(shù)據(jù)之后,獲取各待顯示圖片的尺寸大小,以及獲取頁面上圖片顯示區(qū)域的尺寸大小,隨后將各待顯示圖片的尺寸與圖片顯示區(qū)域的尺寸進(jìn)行比較,若各待顯示圖片的尺寸大于圖片顯示區(qū)域的尺寸,則根據(jù)圖片顯示區(qū)域的尺寸縮小各待顯示圖片的尺寸。進(jìn)而,在步驟S104調(diào)用圖片加載器將各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中時(shí),可以調(diào)用圖片加載器,將縮小尺寸后的各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中,從而通過縮小圖片尺寸的方式來減少終端內(nèi)存的消耗。
進(jìn)一步,在根據(jù)圖片顯示區(qū)域的尺寸縮小各待顯示圖片的尺寸時(shí),可以具體根據(jù)圖片顯示區(qū)域的長度和寬度,縮小各待顯示圖片的長度和寬度,為了使得圖片不變形,也可以同比例縮小各待顯示圖片的長度和寬度。此外,若各待顯示圖片的尺寸小于或等于圖片顯示區(qū)域的尺寸,則對(duì)各待顯示圖片的尺寸可以不進(jìn)行調(diào)整。
方式二,依序加載圖片數(shù)據(jù)的方式。即,可以獲取內(nèi)存的當(dāng)前狀態(tài)信息,調(diào)用圖片加載器,根據(jù)內(nèi)存的當(dāng)前狀態(tài)信息,依序?qū)⒏鞔@示圖片的圖片數(shù)據(jù)加載到內(nèi)存中,從而可以避免內(nèi)存資源被過度占用。
在實(shí)際應(yīng)用中,可以結(jié)合方式一和方式二進(jìn)行圖片數(shù)據(jù)的加載,本發(fā)明對(duì)此并不作限制。
目前,終端多采用瀑布流的布局方式顯示圖片,基于瀑布流技術(shù),用戶在瀏覽圖片的過程中無需翻頁,通過不斷下拉滾動(dòng)條或滑動(dòng)滾輪的方式,用戶可以對(duì)網(wǎng)頁中的圖片進(jìn)行無限瀏覽。然而,用戶瀏覽過的圖片數(shù)據(jù)都會(huì)被加載到終端的內(nèi)存中,隨著用戶的不斷瀏覽,終端內(nèi)存的占用將會(huì)越來越嚴(yán)重,使得終端無法執(zhí)行其他任務(wù)。
為了解決瀑布流技術(shù)過度占用內(nèi)存,在本發(fā)明一實(shí)施例中,可以定時(shí)或不定時(shí)清理內(nèi)存中的圖片數(shù)據(jù)的方式,具體地,可以監(jiān)聽用戶操作事件,判斷已加載圖片的可見性是否發(fā)生變化,當(dāng)已加載圖片變化為不可見時(shí),確定處于不可見狀態(tài)的已加載圖片為需要進(jìn)行內(nèi)存清理的對(duì)象圖片,對(duì)其執(zhí)行清理操作,從而減少內(nèi)存資源的占用。
在本發(fā)明一實(shí)施例中,可以根據(jù)圖片布局信息來調(diào)用相應(yīng)的圖片渲染器,即,可以解析顯示圖片的請(qǐng)求,獲取在頁面上對(duì)一個(gè)或多個(gè)待顯示圖片進(jìn)行布局的圖片布局信息,或者獲取預(yù)先設(shè)置的在頁面上對(duì)圖片進(jìn)行布局的圖片布局信息。從而,在步驟S106調(diào)用圖片渲染器對(duì)各待顯示圖片的圖片數(shù)據(jù)進(jìn)行顯示處理時(shí),可以在多個(gè)具有不同渲染功能的圖片渲染器中,查找與圖片布局信息對(duì)應(yīng)的圖片渲染器,進(jìn)而調(diào)用查找到的圖片渲染器對(duì)各待顯示圖片的圖片數(shù)據(jù)進(jìn)行顯示處理。這里,多個(gè)具有不同渲染功能的圖片渲染器可以包括橫向圖片流渲染器、縱向圖片流渲染器、指定形狀的圖片流渲染器,等等,本發(fā)明不限于此。
前文提及,目前終端多采用瀑布流的布局方式顯示圖片,下面結(jié)合瀑布流技術(shù)顯示圖片,對(duì)比現(xiàn)有技術(shù)中的圖片顯示方案來詳細(xì)介紹本發(fā)明的圖片顯示方法的實(shí)現(xiàn)過程。
圖2示出了現(xiàn)有技術(shù)中移動(dòng)搜索端采用瀑布流的布局方式顯示圖片的組件調(diào)用邏輯示意圖,從圖2可以看到,現(xiàn)有技術(shù)中,當(dāng)接收到顯示圖片的請(qǐng)求時(shí),頻道瀑布流調(diào)用邏輯以及搜索瀑布流調(diào)用邏輯均調(diào)用了瀑布流組件(即用于顯示圖片的圖片顯示組件),一個(gè)組件實(shí)現(xiàn)所有的功能,組件重,代碼耦合度高,不易維護(hù)和迭代。
圖3示出了本發(fā)明實(shí)施例的移動(dòng)搜索端采用瀑布流的布局方式顯示圖片的組件調(diào)用邏輯示意圖,從圖3可以看到,本發(fā)明實(shí)施例將瀑布流組件按照功能至少拆分成用于管理圖片數(shù)據(jù)的數(shù)據(jù)管理器、用于加載圖片數(shù)據(jù)的瀑布流加載器(即,圖片加載器)以及用于在頁面上渲染圖片的多列瀑布流渲染器(即,圖片渲染器),拆分得到的組件功能單一且輕量化,易于維護(hù)和迭代。
圖4示出了現(xiàn)有技術(shù)中PC搜索端采用瀑布流的布局方式顯示圖片的組件調(diào)用邏輯示意圖,從圖4可以看到,現(xiàn)有技術(shù)中,開發(fā)人員需要開發(fā)不同的圖片顯示組件,如多列排版的瀑布流組件、表情包特殊的瀑布流組件、橫向排版的瀑布流組件等,來滿足不同的調(diào)用邏輯,組件重,且需要重復(fù)實(shí)現(xiàn)許多邏輯。
圖5示出了本發(fā)明實(shí)施例的PC搜索端采用瀑布流的布局方式顯示圖片的組件調(diào)用邏輯示意圖,從圖5可以看到,本發(fā)明實(shí)施例將瀑布流組件按照功能至少拆分成用于管理圖片數(shù)據(jù)的數(shù)據(jù)管理器、用于加載圖片數(shù)據(jù)的瀑布流加載器(即,圖片加載器)以及用于在頁面上渲染圖片的多列瀑布流渲染器、規(guī)則形狀的瀑布流渲染器、橫向瀑布流渲染器(即,具有不同渲染功能的圖片渲染器),將數(shù)據(jù)管理器和圖片加載器抽象成公共組件,針對(duì)不同的圖片布局方式維護(hù)不同的圖片渲染器,調(diào)用不同的圖片渲染器實(shí)現(xiàn)各自渲染功能,每個(gè)組件功能單一,代碼應(yīng)用高效,組件易于維護(hù)和自由組合。
基于上文各個(gè)實(shí)施例提供的圖片顯示方法,基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供了一種圖片顯示裝置。
圖6示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的圖片顯示裝置的結(jié)構(gòu)示意圖。如圖6所示,該裝置至少可以包括組件拆分模塊610、圖片數(shù)據(jù)獲取模塊620、圖片數(shù)據(jù)加載模塊630以及圖片顯示模塊640。
現(xiàn)介紹本發(fā)明實(shí)施例的圖片顯示裝置的各組成或器件的功能以及各部分間的連接關(guān)系:
組件拆分模塊610,適于將用于顯示圖片的圖片顯示組件按照功能至少拆分成用于管理圖片數(shù)據(jù)的數(shù)據(jù)管理器611、用于加載圖片數(shù)據(jù)的圖片加載器612以及用于在頁面上渲染圖片的圖片渲染器613,并保存;
圖片數(shù)據(jù)獲取模塊620,與數(shù)據(jù)管理器611相耦合,適于當(dāng)接收到顯示圖片的請(qǐng)求時(shí),調(diào)用數(shù)據(jù)管理器611在圖片存儲(chǔ)器中查找一個(gè)或多個(gè)待顯示圖片,并獲取各待顯示圖片的圖片數(shù)據(jù);
圖片數(shù)據(jù)加載模塊630,與圖片加載器612以及圖片數(shù)據(jù)獲取模塊620相耦合,適于調(diào)用圖片加載器612將各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中;
圖片顯示模塊640,與圖片渲染器613以及圖片數(shù)據(jù)加載模塊630相耦合,適于調(diào)用圖片渲染器613對(duì)各待顯示圖片的圖片數(shù)據(jù)進(jìn)行顯示處理,并在頁面上對(duì)各待顯示圖片的圖片數(shù)據(jù)進(jìn)行渲染,并顯示渲染后的圖片。
在本發(fā)明一實(shí)施例中,圖片數(shù)據(jù)獲取模塊620還適于:
解析請(qǐng)求,得到一個(gè)或多個(gè)待顯示圖片的標(biāo)識(shí);
調(diào)用數(shù)據(jù)管理器在圖片存儲(chǔ)器中查找標(biāo)識(shí)對(duì)應(yīng)的一個(gè)或多個(gè)待顯示圖片。
在本發(fā)明一實(shí)施例中,圖6展示的裝置還可以包括圖片布局信息獲取模塊(附圖中未示出),與圖片顯示模塊640相耦合,適于:
解析請(qǐng)求,獲取在頁面上對(duì)一個(gè)或多個(gè)待顯示圖片進(jìn)行布局的圖片布局信息;或者
獲取預(yù)先設(shè)置的在頁面上對(duì)圖片進(jìn)行布局的圖片布局信息。
在本發(fā)明一實(shí)施例中,
在本發(fā)明一實(shí)施例中,圖片顯示模塊640還適于:
在多個(gè)具有不同渲染功能的圖片渲染器中,查找與圖片布局信息對(duì)應(yīng)的圖片渲染器;
調(diào)用查找到的圖片渲染器對(duì)各待顯示圖片的圖片數(shù)據(jù)進(jìn)行顯示處理。
在本發(fā)明一實(shí)施例中,多個(gè)具有不同渲染功能的圖片渲染器包括:
橫向圖片流渲染器、縱向圖片流渲染器、指定形狀的圖片流渲染器。
在本發(fā)明一實(shí)施例中,在圖片數(shù)據(jù)獲取模塊620獲取各待顯示圖片的圖片數(shù)據(jù)之后,裝置還包括:圖片尺寸獲取模塊、比較模塊以及調(diào)整模塊(附圖中未示出)。
圖片尺寸獲取模塊,適于獲取各待顯示圖片的尺寸大小,以及獲取頁面上圖片顯示區(qū)域的尺寸大??;
比較模塊,適于將各待顯示圖片的尺寸與圖片顯示區(qū)域的尺寸進(jìn)行比較;
調(diào)整模塊,適于若各待顯示圖片的尺寸大于圖片顯示區(qū)域的尺寸,則根據(jù)圖片顯示區(qū)域的尺寸縮小各待顯示圖片的尺寸。
在本發(fā)明一實(shí)施例中,圖片數(shù)據(jù)加載模塊630還適于:
調(diào)用圖片加載器,將縮小尺寸后的各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中。
在本發(fā)明一實(shí)施例中,圖片數(shù)據(jù)加載模塊630還適于:
獲取內(nèi)存的當(dāng)前狀態(tài)信息;
調(diào)用圖片加載器,根據(jù)內(nèi)存的當(dāng)前狀態(tài)信息,依序?qū)⒏鞔@示圖片的圖片數(shù)據(jù)加載到內(nèi)存中。
根據(jù)上述任意一個(gè)優(yōu)選實(shí)施例或多個(gè)優(yōu)選實(shí)施例的組合,本發(fā)明實(shí)施例能夠達(dá)到如下有益效果:
在本發(fā)明實(shí)施例中,圖片顯示組件按照功能至少被拆分成用于管理圖片數(shù)據(jù)的數(shù)據(jù)管理器、用于加載圖片數(shù)據(jù)的圖片加載器以及用于在頁面上渲染圖片 的圖片渲染器,并保存,拆分得到的組件功能單一且輕量化,易于維護(hù)和迭代。當(dāng)接收到顯示圖片的請(qǐng)求時(shí),本發(fā)明實(shí)施例可以直接調(diào)用數(shù)據(jù)管理器在圖片存儲(chǔ)器中查找一個(gè)或多個(gè)待顯示圖片,并獲取各待顯示圖片的圖片數(shù)據(jù),隨后調(diào)用圖片加載器將各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中,之后調(diào)用圖片渲染器對(duì)各待顯示圖片的圖片數(shù)據(jù)進(jìn)行顯示處理,并在頁面上對(duì)各待顯示圖片的圖片數(shù)據(jù)進(jìn)行渲染,并顯示渲染后的圖片。本發(fā)明實(shí)施例將數(shù)據(jù)管理器和圖片加載器抽象成公共組件,針對(duì)不同的圖片布局方式維護(hù)不同的圖片渲染器,調(diào)用不同的圖片渲染器實(shí)現(xiàn)各自渲染功能,每個(gè)組件功能單一,代碼應(yīng)用高效,組件易于維護(hù)和自由組合,從而解決了相關(guān)技術(shù)中需要開發(fā)人員針對(duì)不同的圖片布局方式開發(fā)相應(yīng)的且完整的圖片顯示組件,存在重復(fù)性勞動(dòng),無通用性,開發(fā)效率低的問題。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中。可以把實(shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它 實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的圖片顯示裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
至此,本領(lǐng)域技術(shù)人員應(yīng)認(rèn)識(shí)到,雖然本文已詳盡示出和描述了本發(fā)明的多個(gè)示例性實(shí)施例,但是,在不脫離本發(fā)明精神和范圍的情況下,仍可根據(jù)本發(fā)明公開的內(nèi)容直接確定或推導(dǎo)出符合本發(fā)明原理的許多其他變型或修改。因此,本發(fā)明的范圍應(yīng)被理解和認(rèn)定為覆蓋了所有這些其他變型或修改。
本發(fā)明實(shí)施例還公開了:A1、一種圖片顯示方法,適用于將用于顯示圖片的圖片顯示組件按照功能至少拆分成用于管理圖片數(shù)據(jù)的數(shù)據(jù)管理器、用于加載圖片數(shù)據(jù)的圖片加載器以及用于在頁面上渲染圖片的圖片渲染器的情況,所述方法包括:
當(dāng)接收到顯示圖片的請(qǐng)求時(shí),調(diào)用所述數(shù)據(jù)管理器在圖片存儲(chǔ)器中查找一個(gè)或多個(gè)待顯示圖片,并獲取各待顯示圖片的圖片數(shù)據(jù);
調(diào)用所述圖片加載器將所述各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中;
調(diào)用所述圖片渲染器對(duì)所述各待顯示圖片的圖片數(shù)據(jù)進(jìn)行顯示處理,并在頁面上對(duì)所述各待顯示圖片的圖片數(shù)據(jù)進(jìn)行渲染,并顯示渲染后的圖片。
A2、根據(jù)A1所述的方法,其中,調(diào)用所述數(shù)據(jù)管理器在圖片存儲(chǔ)器中查找一個(gè)或多個(gè)待顯示圖片,包括:
解析所述請(qǐng)求,得到所述一個(gè)或多個(gè)待顯示圖片的標(biāo)識(shí);
調(diào)用所述數(shù)據(jù)管理器在圖片存儲(chǔ)器中查找所述標(biāo)識(shí)對(duì)應(yīng)的所述一個(gè)或多個(gè)待顯示圖片。
A3、根據(jù)A1或A2所述的方法,其中,還包括:
解析所述請(qǐng)求,獲取在頁面上對(duì)所述一個(gè)或多個(gè)待顯示圖片進(jìn)行布局的圖片布局信息;或者
獲取預(yù)先設(shè)置的在頁面上對(duì)圖片進(jìn)行布局的圖片布局信息。
A4、根據(jù)A1-A3任一項(xiàng)所述的方法,調(diào)用所述圖片渲染器對(duì)所述各待顯示圖片的圖片數(shù)據(jù)進(jìn)行顯示處理,包括:
在多個(gè)具有不同渲染功能的圖片渲染器中,查找與所述圖片布局信息對(duì)應(yīng)的圖片渲染器;
調(diào)用查找到的所述圖片渲染器對(duì)所述各待顯示圖片的圖片數(shù)據(jù)進(jìn)行顯示處理。
A5、根據(jù)A1-A4任一項(xiàng)所述的方法,其中,所述多個(gè)具有不同渲染功能的圖片渲染器包括:
橫向圖片流渲染器、縱向圖片流渲染器、指定形狀的圖片流渲染器。
A6、根據(jù)A1-A5任一項(xiàng)所述的方法,其中,所述獲取各待顯示圖片的圖片數(shù)據(jù)之后,所述方法還包括:
獲取所述各待顯示圖片的尺寸大小,以及獲取頁面上圖片顯示區(qū)域的尺寸大??;
將所述各待顯示圖片的尺寸與所述圖片顯示區(qū)域的尺寸進(jìn)行比較;
若所述各待顯示圖片的尺寸大于所述圖片顯示區(qū)域的尺寸,則根據(jù)所述圖片顯示區(qū)域的尺寸縮小所述各待顯示圖片的尺寸。
A7、根據(jù)A1-A6任一項(xiàng)所述的方法,其中,調(diào)用所述圖片加載器將所述各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中,包括:
調(diào)用所述圖片加載器,將縮小尺寸后的所述各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中。
A8、根據(jù)A1-A7任一項(xiàng)所述的方法,其中,調(diào)用所述圖片加載器將所述 各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中,包括:
獲取內(nèi)存的當(dāng)前狀態(tài)信息;
調(diào)用所述圖片加載器,根據(jù)所述內(nèi)存的當(dāng)前狀態(tài)信息,依序?qū)⑺龈鞔@示圖片的圖片數(shù)據(jù)加載到內(nèi)存中。
B9、一種圖片顯示裝置,包括:
組件拆分模塊,適于將用于顯示圖片的圖片顯示組件按照功能至少拆分成用于管理圖片數(shù)據(jù)的數(shù)據(jù)管理器、用于加載圖片數(shù)據(jù)的圖片加載器以及用于在頁面上渲染圖片的圖片渲染器,并保存;
圖片數(shù)據(jù)獲取模塊,適于當(dāng)接收到顯示圖片的請(qǐng)求時(shí),調(diào)用所述數(shù)據(jù)管理器在圖片存儲(chǔ)器中查找一個(gè)或多個(gè)待顯示圖片,并獲取各待顯示圖片的圖片數(shù)據(jù);
圖片數(shù)據(jù)加載模塊,適于調(diào)用所述圖片加載器將所述各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中;
圖片顯示模塊,適于調(diào)用所述圖片渲染器對(duì)所述各待顯示圖片的圖片數(shù)據(jù)進(jìn)行顯示處理,并在頁面上對(duì)所述各待顯示圖片的圖片數(shù)據(jù)進(jìn)行渲染,并顯示渲染后的圖片。
B10、根據(jù)B9所述的裝置,其中,所述圖片數(shù)據(jù)獲取模塊還適于:
解析所述請(qǐng)求,得到所述一個(gè)或多個(gè)待顯示圖片的標(biāo)識(shí);
調(diào)用所述數(shù)據(jù)管理器在圖片存儲(chǔ)器中查找所述標(biāo)識(shí)對(duì)應(yīng)的所述一個(gè)或多個(gè)待顯示圖片。
B11、根據(jù)B9或B10所述的裝置,其中,還包括圖片布局信息獲取模塊,適于:
解析所述請(qǐng)求,獲取在頁面上對(duì)所述一個(gè)或多個(gè)待顯示圖片進(jìn)行布局的圖片布局信息;或者
獲取預(yù)先設(shè)置的在頁面上對(duì)圖片進(jìn)行布局的圖片布局信息。
B12、根據(jù)B9-B11任一項(xiàng)所述的裝置,其中,所述圖片顯示模塊還適于:
在多個(gè)具有不同渲染功能的圖片渲染器中,查找與所述圖片布局信息對(duì)應(yīng)的圖片渲染器;
調(diào)用查找到的所述圖片渲染器對(duì)所述各待顯示圖片的圖片數(shù)據(jù)進(jìn)行顯示處理。
B13、根據(jù)B9-B12任一項(xiàng)所述的裝置,其中,所述多個(gè)具有不同渲染功能的圖片渲染器包括:
橫向圖片流渲染器、縱向圖片流渲染器、指定形狀的圖片流渲染器。
B14、根據(jù)B9-B13任一項(xiàng)所述的裝置,其中,在所述圖片數(shù)據(jù)獲取模塊獲取各待顯示圖片的圖片數(shù)據(jù)之后,所述裝置還包括:
圖片尺寸獲取模塊,適于獲取所述各待顯示圖片的尺寸大小,以及獲取頁面上圖片顯示區(qū)域的尺寸大??;
比較模塊,適于將所述各待顯示圖片的尺寸與所述圖片顯示區(qū)域的尺寸進(jìn)行比較;
調(diào)整模塊,適于若所述各待顯示圖片的尺寸大于所述圖片顯示區(qū)域的尺寸,則根據(jù)所述圖片顯示區(qū)域的尺寸縮小所述各待顯示圖片的尺寸。
B15、根據(jù)B9-B14任一項(xiàng)所述的裝置,其中,所述圖片數(shù)據(jù)加載模塊還適于:
調(diào)用所述圖片加載器,將縮小尺寸后的所述各待顯示圖片的圖片數(shù)據(jù)加載到內(nèi)存中。
B16、根據(jù)B9-B15任一項(xiàng)所述的裝置,其中,所述圖片數(shù)據(jù)加載模塊還適于:
獲取內(nèi)存的當(dāng)前狀態(tài)信息;
調(diào)用所述圖片加載器,根據(jù)所述內(nèi)存的當(dāng)前狀態(tài)信息,依序?qū)⑺龈鞔@示圖片的圖片數(shù)據(jù)加載到內(nèi)存中。