国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

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

      文檔序號:11133524閱讀:395來源:國知局
      一種屏幕適配方法及其裝置與制造工藝

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



      背景技術(shù):

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

      附圖說明

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

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

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

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

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

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

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

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

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

      具體實施方式

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1