两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種屏幕適配方法及其裝置與流程

文檔序號(hào):11133524閱讀:398來(lái)源:國(guó)知局
一種屏幕適配方法及其裝置與制造工藝

本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,特別是涉及一種屏幕適配方法及其裝置。



背景技術(shù):

隨著電子技術(shù)的不斷發(fā)展,各種類(lèi)型的智能終端越來(lái)越多。不同的智能終端之間的顯示屏幕硬件參數(shù),例如尺寸、分辨率等各不相同,如何保持顯示界面在各種不同的屏幕中維持相同的顯示效果,保證屏幕的適配性是一個(gè)非常重要的問(wèn)題。

為了保持屏幕顯示效果的一致性,安卓系統(tǒng)采用了一種稱(chēng)為獨(dú)立像素密度(Density-independent pixel DIP)的方法來(lái)實(shí)現(xiàn)屏幕適配。在設(shè)置屏幕顯示界面的時(shí)候,以獨(dú)立像素密度為單位。這樣,當(dāng)屏幕像素密度越大時(shí),一個(gè)獨(dú)立像素密度對(duì)應(yīng)的像素點(diǎn)也越多,從而實(shí)現(xiàn)顯示界面的適配;當(dāng)設(shè)備的物理尺寸存在差異的時(shí)候,根據(jù)不同的屏幕尺寸定義的不同的參數(shù),并放置于相應(yīng)的文件夾中根據(jù)不同的屏幕尺寸定義的不同的參數(shù),并放置于相應(yīng)的文件夾中。

在實(shí)現(xiàn)本發(fā)明過(guò)程中,發(fā)明人發(fā)現(xiàn)相關(guān)技術(shù)存在以下問(wèn)題:安卓官方提供的解決方法存在著未知適配的情況,無(wú)法預(yù)測(cè)將來(lái)可能出現(xiàn)的具有新的顯示屏幕參數(shù)的設(shè)備,如當(dāng)出現(xiàn)了應(yīng)用的已發(fā)行版本沒(méi)有包括的運(yùn)行設(shè)備時(shí),這樣應(yīng)用的已發(fā)行版本將無(wú)法在這樣的運(yùn)行設(shè)備上完成適配,只能重新添加發(fā)行新的應(yīng)用版本來(lái)實(shí)現(xiàn)屏幕適配。而且這樣的解決方法需要預(yù)先保留大量的適配專(zhuān)用文件夾,不利于維護(hù)。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明實(shí)施例主要解決的技術(shù)問(wèn)題是提供一種屏幕適配方法及其裝置,能夠解決現(xiàn)有技術(shù)中采用獨(dú)立像素密度的方式適配屏幕時(shí),需要預(yù)先設(shè)置參數(shù)文件,存在未知適配情況的問(wèn)題。

為解決上述技術(shù)問(wèn)題,本發(fā)明的一些實(shí)施例提供一種屏幕適配方法。該方法包括:根據(jù)基準(zhǔn)屏幕參數(shù)生成顯示元件的原始尺寸;計(jì)算當(dāng)前屏幕參數(shù)與所述基準(zhǔn)屏幕參數(shù)之間的第一比例;根據(jù)所述第一比例將所述顯示元件的原始尺寸縮放為與所述當(dāng)前屏幕適配的適配尺寸。

可選地,所述根據(jù)所述第一比例將所述顯示元件的原始尺寸縮放為與當(dāng)前屏幕適配的適配尺寸,具體包括:獲取當(dāng)前屏幕參數(shù)和當(dāng)前顯示界面對(duì)應(yīng)的顯示元件樹(shù)形結(jié)構(gòu);根據(jù)所述當(dāng)前屏幕參數(shù),計(jì)算得到與所述當(dāng)前屏幕適配的適配尺寸;根據(jù)所述適配尺寸,遍歷所述顯示元件樹(shù)形結(jié)構(gòu)對(duì)所述顯示元件進(jìn)行縮放,在所述當(dāng)前屏幕上輸出與所述當(dāng)前屏幕適配的顯示界面。

可選地,獲得與所述適配尺寸對(duì)應(yīng)的縮放函數(shù);遍歷所述顯示元件樹(shù)形結(jié)構(gòu),根據(jù)所述縮放函數(shù)依次對(duì)所述顯示元件進(jìn)行縮放;

所述在所述當(dāng)前屏幕上輸出與所述當(dāng)前屏幕適配的顯示界面,具體包括:獲取輸出函數(shù),對(duì)縮放后的所述顯示元件進(jìn)行渲染及定位,在所述當(dāng)前屏幕上輸出與所述當(dāng)前屏幕適配的顯示界面。

可選地,計(jì)算所述顯示元件的設(shè)計(jì)尺寸參數(shù)與所述基準(zhǔn)屏幕參數(shù)之間的第二比例;根據(jù)所述第二比例縮放顯示元件的設(shè)計(jì)尺寸生成所述顯示元件的原始尺寸。

可選地,所述顯示元件包括文本元件和圖形元件;所述根據(jù)所述第一比例縮放顯示元件以適配所述當(dāng)前屏幕,具體包括:根據(jù)所述第一比例分別縮放所述文本元件和所述圖形元件以適配所述當(dāng)前屏幕。

為解決上述技術(shù)問(wèn)題,本發(fā)明的一些實(shí)施例提供一種屏幕適配裝置,該裝置包括:原始尺寸生成模塊,用于根據(jù)基準(zhǔn)屏幕參數(shù)生成顯示元件的原始尺寸;第一計(jì)算模塊,用于計(jì)算當(dāng)前屏幕參數(shù)與所述基準(zhǔn)屏幕參數(shù)之間的第一比例;以及縮放模塊,用于根據(jù)所述第一比例將所述顯示元件的原始尺寸縮放為與所述當(dāng)前屏幕適配的適配尺寸。

可選地,所述縮放模塊包括:獲取單元,用于獲取當(dāng)前屏幕參數(shù)和當(dāng)前顯示界面對(duì)應(yīng)的顯示元件樹(shù)形結(jié)構(gòu);適配尺寸計(jì)算單元,用于根據(jù)所述當(dāng)前屏幕參數(shù),計(jì)算得到與所述當(dāng)前屏幕適配的適配尺寸;縮放單元,用于根據(jù)所述適配尺寸,遍歷所述顯示元件樹(shù)形結(jié)構(gòu)對(duì)顯示元件進(jìn)行縮放,在所述當(dāng)前屏幕上輸出與所述當(dāng)前屏幕適配的顯示界面。

可選地,所述縮放單元具體用于:獲得與所述適配尺寸對(duì)應(yīng)的縮放函數(shù);遍歷所述顯示元件樹(shù)形結(jié)構(gòu),根據(jù)所述縮放函數(shù)依次對(duì)顯示元件進(jìn)行縮放以及獲取輸出函數(shù),對(duì)縮放后的所述顯示元件進(jìn)行渲染及定位,在所述當(dāng)前屏幕上輸出與所述當(dāng)前屏幕適配的顯示界面。

可選地,所述原始尺寸生成模塊具體用于;計(jì)算所述顯示元件的設(shè)計(jì)尺寸參數(shù)與所述基準(zhǔn)屏幕參數(shù)之間的第二比例;以及根據(jù)所述第二比例縮放顯示元件的設(shè)計(jì)尺寸生成所述顯示元件的原始尺寸。

可選地,所述顯示元件包括文本元件和圖形元件;所述縮放模塊具體用于,根據(jù)所述第一比例分別縮放所述文本元件和圖形元件以適配所述當(dāng)前屏幕。

本發(fā)明實(shí)施例中,通過(guò)基于基準(zhǔn)屏幕設(shè)置的原始尺寸,采用等比例縮放的方式,實(shí)現(xiàn)顯示元件的對(duì)于不同尺寸屏幕的適配。這樣的屏幕適配方式,不依賴(lài)于像素密度的計(jì)算,能夠根據(jù)屏幕尺寸自調(diào)節(jié)顯示元件在屏幕上的展示大小,實(shí)現(xiàn)與平鋪或者放大鏡適配的類(lèi)似效果,不需要預(yù)先設(shè)置參數(shù)文件,避免了未知適配的問(wèn)題。

附圖說(shuō)明

一個(gè)或多個(gè)實(shí)施例通過(guò)與之對(duì)應(yīng)的附圖中的圖片進(jìn)行示例性說(shuō)明,這些示例性說(shuō)明并不構(gòu)成對(duì)實(shí)施例的限定,附圖中具有相同參考數(shù)字標(biāo)號(hào)的元件表示為類(lèi)似的元件,除非有特別申明,附圖中的圖不構(gòu)成比例限制。

圖1為本發(fā)明實(shí)施例提供的屏幕適配方法的方法流程圖;

圖2為本發(fā)明另一實(shí)施例提供的屏幕適配方法的方法流程圖;

圖3為本發(fā)明又一實(shí)施例提供的步驟205的方法流程圖;

圖4為本發(fā)明又一實(shí)施例提供的步驟2053的方法流程圖;

圖5為安卓系統(tǒng)中,View與ViewGroup之間的關(guān)系示意圖;

圖6為本發(fā)明實(shí)施例提供的屏幕適配裝置的裝置示意圖;

圖7為本發(fā)明實(shí)施例提供的一種電子設(shè)備的結(jié)構(gòu)示意圖;

圖8為本發(fā)明另一實(shí)施例提供的屏幕適配裝置的縮放模塊的裝置示意圖。

具體實(shí)施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

本發(fā)明實(shí)施例的屏幕適配方法,可以在任何合適類(lèi)型,具有用戶(hù)交互裝置和運(yùn)算能力的處理器的用戶(hù)終端中執(zhí)行,例如掌上游戲機(jī)、臺(tái)式計(jì)算機(jī)、智能手機(jī)、平板電腦、電子閱讀器、智能穿戴設(shè)備以及其他用戶(hù)終端中。

本發(fā)明實(shí)施例的屏幕適配裝置可以作為其中一個(gè)軟件或者硬件功能單元,獨(dú)立設(shè)置在上述用戶(hù)終端中,也可以作為整合在處理器中的其中一個(gè)功能模塊,執(zhí)行本發(fā)明實(shí)施例的屏幕適配方法。

現(xiàn)有的獨(dú)立像素密度(dp)的定義為:px=dp*(dpi/160)。其標(biāo)準(zhǔn)是160dip(每英寸所打印的點(diǎn)數(shù)),px為像素。即當(dāng)設(shè)備的dpi為160的時(shí)候1px=1dp。以獨(dú)立像素密度為單位設(shè)置時(shí),當(dāng)屏幕的密度越大,1dp對(duì)應(yīng)的像素點(diǎn)越多,這樣保證顯示元件能夠在不同像素密度的屏幕上保持基本相同的顯示效果。

基于上述獨(dú)立像素密度為標(biāo)準(zhǔn)的適配方法,在屏幕尺寸存在差異但像素密度相似時(shí),顯示元件占據(jù)屏幕的比例會(huì)發(fā)生改變,導(dǎo)致無(wú)法很好的適應(yīng)屏幕,出現(xiàn)空白或者無(wú)法顯示完整的問(wèn)題,需要為不同尺寸的顯示屏幕設(shè)置不同的配置文件。

與獨(dú)立像素密度適配屏幕的方式相比,本發(fā)明實(shí)施例的屏幕適配方法以等比例縮放為原則,不依賴(lài)于像素的密度,而以保持顯示元件與顯示屏幕之間的比例為標(biāo)準(zhǔn),從而能夠方便的適應(yīng)不同尺寸的顯示設(shè)備,保持顯示界面的顯示效果。

在本發(fā)明實(shí)施例中,顯示元件是指用于構(gòu)成顯示界面或者用戶(hù)交互界面的元件或元件的組合,例如按鍵、背景、浮動(dòng)選框或者各種形狀或者具有各種不同顏色的塊狀區(qū)域(block)等。該顯示元件作為構(gòu)成某一特定顯示界面的單元(元素),可以通過(guò)預(yù)定的方式組合、疊加,從而形成特定的顯示界面。進(jìn)一步的,還可以通過(guò)不同的層次結(jié)構(gòu)的疊加,構(gòu)成目標(biāo)的顯示界面(或用戶(hù)交互界面)。例如,在安卓系統(tǒng)中,顯示界面是由基類(lèi)view和/或容納view容器的view group自由組合所構(gòu)成。在安卓系統(tǒng)中,還可以使用根據(jù)該基類(lèi)派生出來(lái)的其它一些派生子類(lèi)(如AnalogClock、ImageView、以及KeyboardView等)。該view(視圖)、viewgroup(視圖組)、AnalogClock(時(shí)鐘控件)、ImageView(圖片控件)以及KeyboardView均為安卓系統(tǒng)中編程所使用的變量名,為本領(lǐng)域技術(shù)人員所熟知。

該顯示元件的尺寸(如本發(fā)明實(shí)施例中的原始尺寸、適配尺寸等)則是指那些能夠確定該顯示元件的唯一性的,與尺寸相關(guān)的參數(shù),例如對(duì)于長(zhǎng)方形而言,可以通過(guò)長(zhǎng)和寬兩個(gè)參數(shù)來(lái)確定,對(duì)于三角形而言,可以通過(guò)一側(cè)邊長(zhǎng)度以及其中兩個(gè)角的角度來(lái)確定。對(duì)于同一個(gè)顯示元件,其參數(shù)并不是唯一的,例如,對(duì)于長(zhǎng)方形而言,還可以通過(guò)寬度和寬高比兩個(gè)參數(shù)確定。當(dāng)然,該顯示元件還可以是任意的不規(guī)則形狀或者是可以分割為多種幾何形狀的組合形狀。

該尺寸參數(shù)還可以由各種合適的尺度單位(如獨(dú)立像素密度、像素點(diǎn)、厘米等)來(lái)表示。例如,一個(gè)長(zhǎng)方形的顯示元件,其尺寸可以通過(guò)長(zhǎng)為10厘米,寬為2厘米來(lái)表示,也可以通過(guò)長(zhǎng)為10dpi,寬為5dpi來(lái)表示。一般的,可以根據(jù)實(shí)際的設(shè)備或者操作應(yīng)用環(huán)境,選擇使用不同的尺度單位。當(dāng)然,基于尺寸參數(shù)的特點(diǎn),該尺度單位還可以是簡(jiǎn)單的二元數(shù)據(jù),例如對(duì)于方向這一尺寸參數(shù)而言,其一般僅有橫向或者縱向兩種。

圖1為本發(fā)明實(shí)施例提供的一種屏幕適配方法。請(qǐng)參閱圖1,該方法包括:

101:根據(jù)基準(zhǔn)屏幕參數(shù)生成顯示元件的原始尺寸。

該基準(zhǔn)屏幕參數(shù)是預(yù)先設(shè)置的一系列屏幕參數(shù),如分辨率、寬高比或者屏幕方向等等,作為屏幕適配、縮放顯示元件的標(biāo)準(zhǔn)。其具體可以根據(jù)多種不同的方式確定,例如操作人員的使用習(xí)慣、使用率最高的顯示屏幕對(duì)應(yīng)的屏幕參數(shù)或者顯示效果最好的顯示屏幕對(duì)應(yīng)的屏幕參數(shù)等。

在一般的顯示界面(用戶(hù)交互界面)的作業(yè)流程中,首先由設(shè)計(jì)人員向技術(shù)人員提供顯示界面的一些設(shè)計(jì)圖。在原始的設(shè)計(jì)圖中,設(shè)計(jì)人員通常使用的是厘米、英寸等繪畫(huà)單位來(lái)定義界面中的各個(gè)圖形、顏色要素等。這樣的繪畫(huà)單位對(duì)于計(jì)算機(jī)而言是不可讀或者難以閱讀的,并不屬于機(jī)器語(yǔ)言或者程序語(yǔ)言。因此,需要將這些設(shè)計(jì)圖進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換為與機(jī)器語(yǔ)言相對(duì)應(yīng)的尺寸定義。這樣的轉(zhuǎn)換過(guò)程,由上述步驟101完成。

在進(jìn)行轉(zhuǎn)換時(shí),既可以在直接構(gòu)建的與基準(zhǔn)屏幕參數(shù)相當(dāng)?shù)奶摂M屏幕中進(jìn)行;也可以單純的使用數(shù)學(xué)運(yùn)算的方法進(jìn)行尺寸定義的轉(zhuǎn)換。

相對(duì)應(yīng)地,該原始尺寸即為顯示元件在基準(zhǔn)屏幕條件下的尺寸定義。例如,基準(zhǔn)屏幕參數(shù)包括:分辨率1920*1080P;寬高比為16:9,屏幕方向?yàn)闄M向。然后,以該基準(zhǔn)屏幕參數(shù)為基準(zhǔn),將組成給定的顯示界面設(shè)計(jì)圖的各個(gè)顯示元件的尺寸均轉(zhuǎn)換為在當(dāng)前基準(zhǔn)屏幕上的尺寸定義,如某個(gè)顯示元件的寬度占基準(zhǔn)屏幕寬度的1/5。

為陳述簡(jiǎn)便,在本實(shí)施例中以顯示元件為單元,對(duì)本發(fā)明實(shí)施例提供的屏幕適配方法進(jìn)行描述。本領(lǐng)域技術(shù)人員清楚的是,對(duì)于全部的顯示元件執(zhí)行本發(fā)明實(shí)施例提供的屏幕適配方法以后,即可實(shí)現(xiàn)顯示界面的屏幕適配。

103:計(jì)算當(dāng)前屏幕參數(shù)與所述基準(zhǔn)屏幕參數(shù)之間的第一比例。

實(shí)際使用過(guò)程中,可以通過(guò)任何合適的方式,獲取到播放設(shè)備的當(dāng)前屏幕參數(shù),例如調(diào)取設(shè)備固件信息等方法。當(dāng)然,該屏幕參數(shù)可以是播放設(shè)備的屏幕參數(shù)的全部項(xiàng)目或者是其中的一部分項(xiàng)目,能夠反映當(dāng)前屏幕與基準(zhǔn)屏幕之間的比例關(guān)系即可。

獲取到當(dāng)前屏幕參數(shù)以及基準(zhǔn)屏幕參數(shù)后,可以分別計(jì)算各個(gè)項(xiàng)目之間的比例作為第一比例,亦即該第一比例包含有多個(gè)參數(shù)的比例,如計(jì)算當(dāng)前屏幕的長(zhǎng)度與基準(zhǔn)屏幕的長(zhǎng)度之間的比例,當(dāng)前屏幕的寬度與基準(zhǔn)屏幕的寬度之間的比例。

105:根據(jù)所述第一比例將所述顯示元件的原始尺寸縮放為與所述當(dāng)前屏幕適配的適配尺寸。

在獲得所述第一比例后,根據(jù)等比例縮放原則,即可獲得適配尺寸。適配尺寸是指與當(dāng)前屏幕相適配的尺寸,顯示元件在該適配尺寸下,可以在當(dāng)前屏幕下保持在原有基準(zhǔn)屏幕上的顯示效果。

獲得適配尺寸后,可以根據(jù)具體的應(yīng)用環(huán)境或硬件設(shè)備,通過(guò)合適的方式將顯示元件以適配尺寸呈現(xiàn)在顯示屏幕上。

在本發(fā)明實(shí)施例中,以顯示元件作為執(zhí)行縮放操作的單元,也可以同時(shí)執(zhí)行多個(gè)顯示元件的縮放操作,從而完成最終的顯示界面的縮放操作。

在本發(fā)明實(shí)施例中,通過(guò)預(yù)設(shè)的基準(zhǔn)屏幕,使用等比例縮放的方法完成顯示元件的縮放,獲得與屏幕適配的尺寸,很好的避免了使用獨(dú)立像素密度方法造成的無(wú)法充分填滿(mǎn)屏幕,需要在軟件版本中預(yù)先加入相應(yīng)的參數(shù)配置信息,存在未知適配的問(wèn)題。

在當(dāng)前屏幕與基準(zhǔn)屏幕具有相同的寬高比時(shí),該等比例縮放顯示元件的方法能夠?qū)崿F(xiàn)類(lèi)似于放大鏡的放大效果,實(shí)現(xiàn)良好的屏幕適配效果。僅在當(dāng)前屏幕與基準(zhǔn)屏幕具有不相同的寬高比時(shí),顯示元件可能會(huì)出現(xiàn)變形(例如原有長(zhǎng)方形的顯示元件會(huì)變形為正方形的顯示元件),但由于現(xiàn)有的顯示設(shè)備的寬高比的類(lèi)型非常少,尤其是對(duì)于電視機(jī)或者一些常用的大型顯示設(shè)備而言,其寬高比均相同或者相近(通常為16:9),因此,這一問(wèn)題也可以通過(guò)增添一些配置文件來(lái)很好的解決。

本發(fā)明另一實(shí)施例提供一種屏幕適配方法,該方法包括:

201:根據(jù)基準(zhǔn)屏幕參數(shù)生成顯示元件的原始尺寸。

作為本步驟的一個(gè)可選實(shí)施方式,參閱圖2,根據(jù)基準(zhǔn)屏幕參數(shù)生成顯示元件的原始尺寸包括以下步驟:

2011:計(jì)算所述顯示元件的設(shè)計(jì)尺寸參數(shù)與所述基準(zhǔn)屏幕參數(shù)之間的第二比例。

該設(shè)計(jì)尺寸參數(shù)由顯示界面的設(shè)計(jì)人員給定,其可以是一些繪圖的尺寸標(biāo)記,各個(gè)顯示元件之間的關(guān)系等等,具體根據(jù)設(shè)計(jì)人員的實(shí)際使用習(xí)慣,使用工具等所決定。

該設(shè)計(jì)尺寸無(wú)法直接使用,需要根據(jù)基準(zhǔn)屏幕參數(shù)進(jìn)行一定的轉(zhuǎn)換。該基準(zhǔn)屏幕是一塊預(yù)設(shè)的基準(zhǔn)屏幕,其根據(jù)實(shí)際的情況所確定,例如可以是設(shè)計(jì)人員在設(shè)計(jì)顯示界面時(shí)使用的屏幕,或者也可以是具有最佳展示效果的屏幕作為基準(zhǔn)屏幕。

如上所述,該基準(zhǔn)屏幕用于作為顯示元件的顯示效果標(biāo)準(zhǔn),其可以?xún)H提供若干項(xiàng)相關(guān)的基準(zhǔn)屏幕參數(shù)而不需要構(gòu)建整個(gè)完整的基準(zhǔn)屏幕,例如可以提供分辨率、寬高比、長(zhǎng)度、寬度等其中的一種或者多種參數(shù)。

2013:根據(jù)所述第二比例縮放顯示元件的設(shè)計(jì)尺寸生成顯示元件的原始尺寸。

在確定基準(zhǔn)屏幕(或者確定基準(zhǔn)屏幕參數(shù))后,即可以根據(jù)該第二比例,計(jì)算獲得顯示元件的原始尺寸。當(dāng)然,在實(shí)際的設(shè)置過(guò)程中,若設(shè)計(jì)人員在設(shè)計(jì)時(shí),已經(jīng)以基準(zhǔn)屏幕為標(biāo)準(zhǔn)進(jìn)行設(shè)計(jì)并給出對(duì)應(yīng)的比例或原始尺寸,該步驟2011和2013也可以不執(zhí)行。

203:計(jì)算當(dāng)前屏幕參數(shù)與基準(zhǔn)屏幕參數(shù)之間的第一比例。

可選地,所述顯示元件包括文本元件和圖形元件。

一般的,在一個(gè)完整的顯示界面中,通常會(huì)包括有文本屬性以及圖形屬性?xún)深?lèi)的顯示元素。在設(shè)計(jì)或者轉(zhuǎn)換為顯示元件的過(guò)程中,這兩類(lèi)顯示元素通常會(huì)被放置在兩類(lèi)不同的顯示元件中,即文本元件和圖形元件。

205:根據(jù)所述第一比例將所述顯示元件的原始尺寸縮放為與當(dāng)前屏幕適配的適配尺寸。

可選地,可根據(jù)所述第一比例分別縮放文本元件和圖形元件以適配當(dāng)前屏幕。

在實(shí)際的運(yùn)行過(guò)程中,文本元件與圖形元件通常存放于不同的類(lèi)別中。在進(jìn)行縮放時(shí),分別對(duì)文本元件和圖形元件執(zhí)行縮放,獲得相應(yīng)的適配尺寸進(jìn)行播放。這樣可以保證顯示界面的文本也能夠完成縮放,適配當(dāng)前屏幕。

作為本步驟的一個(gè)可選實(shí)施方式,參閱圖3,根據(jù)基準(zhǔn)屏幕參數(shù)生成顯示元件的原始尺寸包括以下步驟:

2051:獲取當(dāng)前屏幕參數(shù)和當(dāng)前顯示界面對(duì)應(yīng)的顯示元件樹(shù)形結(jié)構(gòu)。

在用戶(hù)交互界面的生成過(guò)程中,通常需要首先將設(shè)計(jì)人員提供的顯示界面配置為由各種不同的顯示元件組成并給定這些顯示元件之間的聯(lián)系和層次。

該顯示元件樹(shù)形結(jié)構(gòu)是指某一顯示界面內(nèi)顯示元件之間的聯(lián)系。該樹(shù)形結(jié)構(gòu)以顯示元件為節(jié)點(diǎn),可以是一層或者是多層的多叉樹(shù)或者其它合適的樹(shù)形結(jié)構(gòu)。通過(guò)這樣的樹(shù)形層次結(jié)構(gòu),可以通過(guò)配置的顯示元件的方式構(gòu)建任意具有復(fù)雜結(jié)構(gòu)的多個(gè)顯示界面。

例如,在安卓系統(tǒng)中,這樣的顯示元件可以為view或者view group。通過(guò)view和viewgroup搭建顯示在設(shè)備上的用戶(hù)交互界面(UI)。

當(dāng)前屏幕參數(shù)的可以通過(guò)讀取設(shè)備管理器中相關(guān)硬件參數(shù)獲得,或者有相應(yīng)的,具有對(duì)應(yīng)權(quán)限的接口讀取。獲取的當(dāng)前屏幕參數(shù)可以是當(dāng)前屏幕的寬度、寬高比、分辨率等等,根據(jù)實(shí)際應(yīng)用的需求所確定,增加或者減少。

2052:根據(jù)所述當(dāng)前屏幕參數(shù),計(jì)算得到與所述當(dāng)前屏幕適配的適配尺寸。

2053:根據(jù)所述適配尺寸,遍歷所述顯示元件樹(shù)形結(jié)構(gòu)對(duì)顯示元件進(jìn)行縮放,在所述當(dāng)前屏幕上輸出與所述當(dāng)前屏幕適配的顯示界面。

可選地,請(qǐng)參閱圖4,根據(jù)所述適配尺寸,遍歷所述顯示元件樹(shù)形結(jié)構(gòu)對(duì)顯示元件樹(shù)形結(jié)構(gòu)的節(jié)點(diǎn)進(jìn)行縮放,在所述當(dāng)前屏幕上輸出與所述當(dāng)前屏幕適配的顯示界面,具體包括以下步驟:。

303:獲得與所述適配尺寸對(duì)應(yīng)的縮放函數(shù)。

在獲得適配尺寸后,將相對(duì)應(yīng)的適配尺寸數(shù)據(jù)放置于縮放函數(shù)中,由縮放函數(shù)完成縮放。該適配尺寸具體可以是以各種不同單位表示的參數(shù),由所述計(jì)算函數(shù)的輸出值所決定。

在本實(shí)施例中,該適配尺寸可以是由像素點(diǎn)為單位表示的適配尺寸,可以是由像素點(diǎn)數(shù)量表示的顯示元件的長(zhǎng)度、寬度或者面積。

具體涉及的縮放功能程序代碼由實(shí)際應(yīng)用環(huán)境所確定,可以在編寫(xiě)應(yīng)用程序中完成。

該縮放函數(shù)是一個(gè)預(yù)先設(shè)置的,用于計(jì)算計(jì)算顯示元件的適配尺寸的一個(gè)或者多個(gè)運(yùn)算公式。這一計(jì)算函數(shù)對(duì)應(yīng)實(shí)現(xiàn)的功能程序代碼可以作為單一控件,或者整合在使用的應(yīng)用中。在執(zhí)行計(jì)算前,可以根據(jù)適配尺寸對(duì)該縮放函數(shù)進(jìn)行初始化,確定對(duì)應(yīng)的變量參數(shù)后完成縮放。

305:遍歷所述顯示元件樹(shù)形結(jié)構(gòu),根據(jù)所述縮放函數(shù)依次對(duì)所述顯示元件進(jìn)行縮放。

如上所描述,顯示界面與顯示元件之間具體特定的層次關(guān)系。這樣的層次關(guān)系可以通過(guò)特定的樹(shù)形結(jié)構(gòu)(例如包含多個(gè)層次多叉樹(shù)結(jié)構(gòu))所表示。

由此,遍歷樹(shù)形結(jié)構(gòu),在每個(gè)節(jié)點(diǎn)中(即顯示元件)執(zhí)行所述縮放函數(shù),完成對(duì)顯示界面中所有顯示元件的縮放操作,縮放至與適配尺寸對(duì)應(yīng)的大小。

307:獲取輸出函數(shù),對(duì)縮放后的顯示元件進(jìn)行渲染及定位,在當(dāng)前屏幕上輸出與所述當(dāng)前屏幕適配的顯示界面。

完成顯示元件縮放以后,若需要實(shí)現(xiàn)顯示界面在當(dāng)前屏幕的展示,還需要對(duì)顯示元件進(jìn)行定位以及渲染操作,在當(dāng)前屏幕的特定位置顯示出特定的渲染效果,以最終完成屏幕適配的過(guò)程。該輸出函數(shù)可以采用現(xiàn)有技術(shù)中任何常用的,適合使用的相關(guān)功能函數(shù)。該輸出函數(shù)可以是一個(gè)功能函數(shù)完成,也可以是由多個(gè)功能函數(shù)共同執(zhí)行以實(shí)現(xiàn)定位和渲染的過(guò)程。

在當(dāng)前安卓系統(tǒng)的應(yīng)用中,碎片化的情況比較嚴(yán)重,很難預(yù)計(jì)新的屏幕尺寸,導(dǎo)致應(yīng)用程序的再版任務(wù)繁重。而且,采用官方解決方法時(shí),需要在應(yīng)用程序下預(yù)設(shè)多個(gè)與不同尺寸的顯示屏幕對(duì)應(yīng)的配置文件,不便于進(jìn)行維護(hù)。

在本發(fā)明實(shí)施例中,提供了執(zhí)行該屏幕適配方法的具體操作過(guò)程。通過(guò)整合在系統(tǒng)中的計(jì)算函數(shù)及縮放函數(shù),以實(shí)時(shí)獲取的當(dāng)前屏幕參數(shù)為基礎(chǔ),就能夠很好的完成屏幕適配的縮放過(guò)程,縮放至合適的尺寸(即輸出對(duì)應(yīng)的適配尺寸值)。僅需要預(yù)設(shè)計(jì)算函數(shù)及縮放函數(shù)即可適配不同尺寸的顯示屏幕,等比例的放大或者縮小顯示元件(及顯示界面)。

為進(jìn)一步的解釋本發(fā)明實(shí)施例提供的屏幕適配方法,以安卓系統(tǒng)中的具體屏幕適配實(shí)例進(jìn)行陳述:

在安卓系統(tǒng)中,用戶(hù)交互界面(即顯示界面)都是通過(guò)view和ViewGroup及其一些派生類(lèi)組合生成的。其中view是所有用戶(hù)交互界面的基類(lèi),而ViewGroup是容納這些組件的容器(也從view中派生而成)。

請(qǐng)參閱圖5,為View和ViewGroup在組成用戶(hù)交互界面時(shí)之間的關(guān)系示意圖。為了實(shí)現(xiàn)用戶(hù)交互界面的屏幕適配,需要對(duì)其組成的單元View執(zhí)行適應(yīng)性的縮放(即對(duì)顯示單元執(zhí)行的操作)。

在安卓系統(tǒng)中,View的主要生命周期包括以下幾個(gè)執(zhí)行步驟。

首先,執(zhí)行on finishinflate(),完成從XML布局獲取view的樹(shù)形結(jié)構(gòu)的過(guò)程,此時(shí),可以在程序中操縱、編輯view。

然后,還包括onmeasure(int,int),用于確定所有view的子元素的大小以及當(dāng)view分配所有的子元素的大小以及位置時(shí)觸發(fā)的on layout(boolean,int,int,int,int)。

最后,則由ondraw(canvas)view來(lái)渲染內(nèi)容的細(xì)節(jié)。

在本發(fā)明實(shí)施例提供的屏幕適配方法中,可以在view的生命周期的第一步中,增設(shè)scaleview這一自定義的功能,采集需要的view的參數(shù),計(jì)算對(duì)應(yīng)的適配尺寸,并對(duì)view的參數(shù)賦值(即將其縮放至對(duì)應(yīng)大小)。

相對(duì)應(yīng)地,該自定義功能中,至少包括scalecalculator(與上述實(shí)施例中的計(jì)算函數(shù)對(duì)應(yīng))和scale view(與上述實(shí)施例中的縮放函數(shù)對(duì)應(yīng))這兩個(gè)組件,分別執(zhí)行相應(yīng)的功能。

例如,首先,獲取當(dāng)前屏幕參數(shù),對(duì)scalecalculator進(jìn)行初始化。

然后,在scale view中,首先獲取view的原始尺寸(layoutparameter)。根據(jù)該view的寬和高占基準(zhǔn)屏幕的比例,計(jì)算在當(dāng)前屏幕中,view的寬和高像素?cái)?shù)量。進(jìn)一步地,還可以對(duì)安卓系統(tǒng)中view中的其它尺寸屬性,如padding、margin等執(zhí)行縮放操作。

以上描述了對(duì)于單個(gè)view的過(guò)程,對(duì)于viewgroup,需要遍歷其中的view以執(zhí)行上述縮放操作過(guò)程。為實(shí)現(xiàn)整個(gè)用戶(hù)界面的縮放以適應(yīng)當(dāng)前屏幕,直至將整個(gè)view的樹(shù)形結(jié)構(gòu)遍歷完畢后,完成顯示界面所有的view。

本發(fā)明實(shí)施例還提供了一種屏幕適配裝置。請(qǐng)參閱圖6,該屏幕適配裝置包括:原始尺寸生成模塊100、計(jì)算模塊200以及縮放模塊300。

其中,原始尺寸生成模塊100用于根據(jù)基準(zhǔn)屏幕參數(shù)生成顯示元件的原始尺寸。計(jì)算模塊200用于計(jì)算當(dāng)前屏幕參數(shù)與基準(zhǔn)屏幕參數(shù)之間的第一比例??s放模塊300用于根據(jù)所述第一比例將所述顯示元件的原始尺寸縮放為與當(dāng)前屏幕適配的適配尺寸。

在實(shí)際的操作過(guò)程中,首先由原始尺寸生成模塊100生成顯示元件的原始尺寸。另外,由計(jì)算模塊200計(jì)算當(dāng)前屏幕參數(shù)與基準(zhǔn)屏幕參數(shù)之間的第一比例。最后根據(jù)原始尺寸和第一比例,通過(guò)縮放模塊300將所述顯示元件的原始尺寸縮放為與當(dāng)前屏幕適配的適配尺寸。

在該實(shí)施例中,通過(guò)預(yù)設(shè)的基準(zhǔn)屏幕,使用等比例縮放的方法完成顯示元件的縮放,獲得與屏幕適配的尺寸,很好的避免了使用獨(dú)立像素密度方法造成的無(wú)法充分填滿(mǎn)屏幕,需要在軟件版本中預(yù)先加入相應(yīng)的參數(shù)配置信息,存在未知適配的問(wèn)題。

在本發(fā)明的另一實(shí)施例中,請(qǐng)參閱圖8,所述縮放模塊300具體包括:獲取單元310,適配尺寸計(jì)算單元320以及縮放單元330。獲取單元310用于獲取當(dāng)前屏幕參數(shù)和當(dāng)前顯示界面對(duì)應(yīng)的顯示元件樹(shù)形結(jié)構(gòu)。適配尺寸計(jì)算單元320,用于根據(jù)所述當(dāng)前屏幕參數(shù),計(jì)算得到與所述當(dāng)前屏幕適配的適配尺寸??s放單元330,用于根據(jù)所述適配尺寸,遍歷所述顯示元件樹(shù)形結(jié)構(gòu)對(duì)顯示元件樹(shù)形結(jié)構(gòu)的節(jié)點(diǎn)進(jìn)行縮放,在所述當(dāng)前屏幕上輸出與所述當(dāng)前屏幕適配的顯示界面。

在本實(shí)施例中,所述縮放單元330具體用于:獲得與所述適配尺寸對(duì)應(yīng)的縮放函數(shù);遍歷所述顯示元件樹(shù)形結(jié)構(gòu),依次對(duì)顯示元件樹(shù)形結(jié)構(gòu)的節(jié)點(diǎn)執(zhí)行所述縮放函數(shù)以及對(duì)縮放后的顯示元件執(zhí)行用于渲染及定位顯示元件的輸出函數(shù),在當(dāng)前屏幕上輸出與當(dāng)前屏幕適配的顯示界面。

在本實(shí)施例中,所述顯示元件包括文本元件和圖形元件。所述縮放模塊300具體用于:根據(jù)所述第一比例分別縮放文本元件和圖形元件以適配當(dāng)前屏幕。

在實(shí)際的運(yùn)行過(guò)程中,文本元件與圖形元件通常存放于不同的類(lèi)別中。在進(jìn)行縮放時(shí),分別對(duì)文本元件和圖形元件執(zhí)行縮放,獲得相應(yīng)的適配尺寸進(jìn)行播放。這樣可以保證顯示界面的文本也能夠完成縮放,適配當(dāng)前屏幕。

在本實(shí)施例中,顯示界面由若干顯示元件以預(yù)定組合形式組成。該縮放模塊300可以具體用于:獲取當(dāng)前屏幕參數(shù);根據(jù)所述當(dāng)前屏幕參數(shù),初始化用于計(jì)算顯示元件的適配尺寸的計(jì)算函數(shù);根據(jù)計(jì)算獲得的適配尺寸,初始化用于縮放顯示元件至適配尺寸的縮放函數(shù);遍歷以顯示元件為節(jié)點(diǎn)的樹(shù)形結(jié)構(gòu)并執(zhí)行縮放函數(shù);所述樹(shù)形結(jié)構(gòu)與顯示界面相對(duì)應(yīng);通過(guò)用于渲染及定位顯示元件的輸出函數(shù),在當(dāng)前屏幕上輸出與當(dāng)前屏幕適配的顯示界面。

在本實(shí)施例中,所述原始尺寸生成模塊100具體用于;計(jì)算顯示元件的設(shè)計(jì)尺寸參數(shù)與基準(zhǔn)屏幕參數(shù)之間的第二比例;根據(jù)所述第二比例縮放顯示元件的設(shè)計(jì)尺寸生成顯示元件的原始尺寸。

顯示元件的原始尺寸及適配尺寸可以以像素點(diǎn)為單位。所述當(dāng)前屏幕參數(shù)可以包括:當(dāng)前屏幕的顯示分辨率、當(dāng)前屏幕的長(zhǎng)度、當(dāng)前屏幕的寬高比例以及屏幕方向。

對(duì)于顯示屏幕而言,其是以像素點(diǎn)進(jìn)行顯示的,使用像素點(diǎn)為單位能夠具有較好的通用性,便于移植到各種應(yīng)用環(huán)境中。另外,以像素點(diǎn)為單位,與使用其它的衡量單位(例如厘米等)相比,還能夠方便的表示不規(guī)則的圖案形狀等,定義簡(jiǎn)便。

在本發(fā)明實(shí)施例中的縮放模塊,通過(guò)執(zhí)行計(jì)算函數(shù)及縮放函數(shù),能夠很好的完成屏幕適配的縮放過(guò)程,縮放至合適的尺寸。這樣的屏幕適配裝置無(wú)需采用官方解決方法的形式,在應(yīng)用程序下預(yù)設(shè)多個(gè)與不同尺寸的顯示屏幕對(duì)應(yīng)的配置文件,僅需要預(yù)設(shè)計(jì)算函數(shù)及縮放函數(shù)即可適配不同尺寸的顯示屏幕,等比例的放大或者縮小顯示元件以及對(duì)應(yīng)的顯示界面,便于進(jìn)行維護(hù)。

圖7是本發(fā)明實(shí)施例提供的一種電子設(shè)備的結(jié)構(gòu)示意圖,請(qǐng)參閱圖7,該設(shè)備60包括一個(gè)或多個(gè)處理器601以及存儲(chǔ)器602。圖7中以一個(gè)處理器601為例。

執(zhí)行視頻預(yù)覽方法的電子設(shè)備還可以包括輸入裝置603和輸出裝置604。處理器601、存儲(chǔ)器602、輸入裝置603和輸出裝置604可以通過(guò)總線或者其他方式連接,圖6中以通過(guò)總線連接為例。

存儲(chǔ)器602作為一種非易失性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),可用于存儲(chǔ)非易失性軟件程序、非易失性計(jì)算機(jī)可執(zhí)行程序以及模塊,如本發(fā)明實(shí)施例中的屏幕適配方法對(duì)應(yīng)的程序指令或模塊,例如,附圖5所示的原始尺寸生成模塊100、第一計(jì)算模塊200以及縮放模塊300中的非易失性軟件程序、指令以及模塊,從而執(zhí)行服務(wù)器的各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述方法實(shí)施例屏幕適配方法。

存儲(chǔ)器602可以包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需要的應(yīng)用程序;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)視頻預(yù)覽裝置的使用所創(chuàng)建的數(shù)據(jù)等。此外,存儲(chǔ)器602可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤(pán)存儲(chǔ)器件、閃存器件、或其他非易失性固態(tài)存儲(chǔ)器件。在一些實(shí)施例中,存儲(chǔ)器602可選包括相對(duì)于處理器601遠(yuǎn)程設(shè)置的存儲(chǔ)器,這些遠(yuǎn)程存儲(chǔ)器可以通過(guò)網(wǎng)絡(luò)連接至屏幕適配裝置。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。

輸入裝置603可接收輸入的數(shù)字或字符信息,以及產(chǎn)生與屏幕適配裝置的用戶(hù)設(shè)置以及功能控制有關(guān)的鍵信號(hào)輸入。輸出裝置604可包括顯示屏等顯示設(shè)備。

所述一個(gè)或者多個(gè)模塊存儲(chǔ)在所述存儲(chǔ)器602中,當(dāng)被所述一個(gè)或者多個(gè)處理器601執(zhí)行時(shí),執(zhí)行上述任意方法實(shí)施例中的屏幕適配方法。

未在本實(shí)施例中詳盡描述的技術(shù)細(xì)節(jié),可參見(jiàn)本發(fā)明實(shí)施例所提供的方法。

通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件。基于這樣的理解,上述技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤(pán)等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。

以上所述僅為本發(fā)明的實(shí)施方式,并非因此限制本發(fā)明的專(zhuān)利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專(zhuān)利保護(hù)范圍內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
贺州市| 云梦县| 中江县| 宜兰县| 饶河县| 左贡县| 兴仁县| 武川县| 怀宁县| 出国| 麦盖提县| 营口市| 铁岭市| 四川省| 项城市| 平山县| 温宿县| 武义县| 林州市| 桐梓县| 扶绥县| 平乐县| 东阳市| 山西省| 杨浦区| 壤塘县| 盱眙县| 尚义县| 宜昌市| 娄底市| 郴州市| 农安县| 白银市| 平泉县| 东乌| 通州区| 黄龙县| 额敏县| 崇明县| 南江县| 贺州市|