專利名稱:顯示終端基于Android應用的OSD壓縮方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及顯示終端領(lǐng)域,特別涉及一種顯示終端基于Android應用的OSD壓縮方法及裝置。
背景技術(shù):
隨著電視技術(shù)的發(fā)展,一屏雙顯技術(shù)在電視系統(tǒng)上的應用也日趨成熟?,F(xiàn)有技術(shù)中,對OSD (on-screen display,屏幕菜單式調(diào)節(jié)方式)的處理通常采用壓縮整個OSD層來實現(xiàn)雙屏顯示。由于整個OSD層進行壓縮時,所有應用和菜單將被一起壓縮,其缺陷在于,OSD壓縮的靈活性較差,亟需改進。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種顯示終端基于Android應用的OSD壓縮方法,旨在提高OSD壓縮的靈活性。為了實現(xiàn)發(fā)明目的,本發(fā)明提供一種顯示終端基于Android應用的OSD壓縮方法,包括以下步驟獲取當前Activity的根視圖;壓縮所述根視圖;將壓縮后的所述根視圖進行平移。 優(yōu)選地,所述獲取當前Activity的根視圖步驟具體包括當接收到用戶發(fā)送的OSD顯示命令時,獲取與所述Activity的窗口對應的布局文件;根據(jù)所述根視圖的根控件從所述布局文件查找獲得對應的根視圖。優(yōu)選地,所述壓縮根視圖步驟具體包括調(diào)用沿寬度方向壓縮根視圖的setScaleX方法將所述根視圖的寬度壓縮為預置的第一閾值;調(diào)用沿高度方向壓縮根視圖的setScaleY方法將所述根視圖的高度壓縮為預置的第二閾值。優(yōu)選地,所述第一閾值的大小等于所述根視圖的寬度的一半,所述第二閾值的大小等于所述根視圖的高度。優(yōu)選地,所述將壓縮后的根視圖進行平移步驟包括調(diào)用ObjectAnimator方法對壓縮后的所述根視圖進行平移操作。本發(fā)明還提供一種顯示終端基于Android應用的OSD壓縮裝置,包括獲取模塊,用于獲取當前Activity的根視圖;壓縮模塊,用于壓縮所述根視圖;平移模塊,用于將壓縮后的所述根視圖進行平移。優(yōu)選地,所述獲取模塊包括
獲取子塊,用于當接收到用戶發(fā)送的OSD顯示命令時,獲取與所述Activity的窗口對應的布局文件;查找子塊,用于根據(jù)所述根視圖的根控件從所述布局文件查找獲得對應的根視圖。優(yōu)選地,所述壓縮模塊包括第一壓縮子塊,用于調(diào)用沿寬度方向壓縮根視圖的setScaleX方法將所述根視圖的寬度壓縮為預置的第一閾值;第二壓縮子塊,用于調(diào)用沿高度方向壓縮根視圖的setScaleY方法將所述根視圖的高度壓縮為預置的第二閾值。優(yōu)選地,所述第一閾值的大小等于所述根視圖的寬度的一半,所述第二閾值的大 小等于所述根視圖的高度。優(yōu)選地,所述平移模塊,具體用于調(diào)用ObjectAnimator方法對壓縮后的所述根視圖進行平移操作。本發(fā)明通過獲取Activity的根視圖,并調(diào)整該根視圖的大小,實現(xiàn)OSD中Activity的壓縮。由于OSD壓縮過程中,只對Activity層壓縮,無需對其他的應用和菜單進行壓縮,因此本發(fā)明提供的OSD壓縮方法提高了 OSD壓縮的靈活性。此外,采用setScaleX和setScaleY計算方法實現(xiàn)根視圖的壓縮,該壓縮的計算方法可使壓縮后的畫面像素信息無損失,因此提高了 OSD壓縮后畫面顯示的效果。
圖I為本發(fā)明顯示終端基于Android應用的OSD壓縮方法一實施例的流程示意圖;圖2為本發(fā)明顯示終端基于Android應用的OSD壓縮方法一實施例中獲取根視圖的流程示意圖;圖3為本發(fā)明顯示終端基于Android應用的OSD壓縮方法一實施例中根視圖壓縮的流程示意圖;圖4為本發(fā)明顯示終端基于Android應用的OSD壓縮裝置一實施例的結(jié)構(gòu)示意圖;圖5為圖4中獲取模塊的結(jié)構(gòu)示意圖;圖6為圖4中壓縮模塊的結(jié)構(gòu)示意圖。本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
具體實施例方式本發(fā)明實施例中,顯示終端為具有顯示功能的電子設(shè)備,例如智能手機和電視機。以下將以電視機為例,詳細說明本發(fā)明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。參照圖1,圖I為本發(fā)明顯示終端基于Android應用的OSD壓縮方法一實施例的流程不意圖。提供一種顯示終端基于Android應用的OSD壓縮方法,包括以下步驟
步驟S10,獲取當前Activity的根視圖;Activity為Android的四大組件之一,該Activity包括一默認的顯示窗口,該顯不窗口具有一層一層的視圖,該一層一層的視圖包括一用于設(shè)置窗口大小的根視圖。步驟S20,壓縮上述根視圖; 當電視機獲取到上述根視圖,可根據(jù)預置的壓縮方法對該根視圖進行壓縮。應當說明的是,本實施例中的壓縮是指對該根視圖的大小進行壓縮,例如,可將上述根視圖壓縮為高度保持不變,寬度縮小一半的根視圖,即上述Activity通過壓縮后的顯示窗口顯示的區(qū)域等于原來顯示窗口的一半。步驟S30,將壓縮后的上述根視圖進行平移。當上述根視圖壓縮完畢后,將壓縮后的根視圖進行平移,平移至顯示屏對應的顯示區(qū)域,然后激活該OSD畫面的動畫效果,完成OSD壓縮操作。本發(fā)明通過獲取Activity的根視圖,并調(diào)整該根視圖的大小,實現(xiàn)OSD中Activity的壓縮。由于OSD壓縮過程中,只對Activity層壓縮,無需對其他的應用和菜單進行壓縮,因此本發(fā)明提供的OSD壓縮方法提高了 OSD壓縮的靈活性。參照圖2,圖2為本發(fā)明顯示終端基于Android應用的OSD壓縮方法一實施例中獲取根視圖的流程示意圖。本實施例中,上述步驟SlO包括步驟S101,當接收到用戶發(fā)送的OSD顯示命令時,獲取與上述Activity的窗口對應的布局文件;步驟S102,根據(jù)上述根視圖的根控件從上述布局文件查找獲得對應的根視圖。例如,用戶在觀看電視時,可通過遙控器控制OSD畫面從全屏顯示切換至雙屏顯示。此時遙控器將發(fā)送一 OSD壓縮指令至電視機,電視機接收到該OSD壓縮指令后,通過調(diào)用setContentView接口查找到當前Activity的窗口對應的布局文件,本實施例中該布局文件為XML格式的文件。當查找獲得該布局文件后,通過調(diào)用findViewByld方法,并根據(jù)根視圖的根控件從該布局文件中查找獲得對應的根視圖。該根控件為根視圖的標示符ID。參照圖3,圖3為本發(fā)明顯示終端基于Android應用的OSD壓縮方法一實施例中根視圖壓縮的流程示意圖。本實施例中,上述步驟S20包括步驟S201,調(diào)用沿寬度方向壓縮根視圖的setScaleX方法將上述根視圖的寬度壓縮為第一閾值;步驟S202,調(diào)用沿高度方向壓縮根視圖的setScaleY方法將上述根視圖的高度壓縮為第二閾值。具體的,根視圖的壓縮的計算方法可根據(jù)實際需要進行設(shè)置,作為優(yōu)選,本實施例調(diào)用setScaleX (float f)和setScaleY (float g)計算方法,使根視圖的寬度和高度分別壓縮至預置的第一閾值和第二閾值。例如,電視機屏幕的寬度為L,高度為H,第一閾值為L/4,第二閾值為H/2。當電視機進入雙屏顯示時,setScaleX (float f)中f的值為第一閾值與電視機屏幕的寬度的比值,即f=0. 25 ;setScaleY (float g)中g(shù)的值為第二閾值與電視機屏幕的高度的比值,即g=0. 5。通過setScaleX (0. 25)和setScaleY (0. 5)將根視圖的寬度和高度分別壓縮至L/4和H/2。應當說明的是,本實施例中第一閾值和第二閾值的大小可根據(jù)雙屏顯示時顯示區(qū)域的大小進行設(shè)定,在此不作進一步限定。優(yōu)選的,本實施例中第一閾值為L/2,第二閾值為H ;上述寬度方向為Android系統(tǒng)定義的X方向,上述高度方向為Android系統(tǒng)定義的Y方向。本發(fā)明實施例提供的OSD壓縮方法中,Android系統(tǒng)為具有setScaleX方法和setScaleY方法接口的Android系統(tǒng)。由于本實施例米用setScaleX(float f )和setScaleY(float g)計算方法實現(xiàn)根視圖的壓縮,該壓縮的計算方法可使壓縮后的畫面像素信息無損失,因此提高了 OSD壓縮后畫面顯示的效果。具體的,上述步驟S30包括調(diào)用ObjectAnimator方法對壓縮后的根視圖進行平移操作。例如,電視機雙屏顯示的顯示區(qū)域為左右均分的兩個半屏,則上述第一閾值為L/2和第二閾值為H,采用上述setScaleX (float f)和setScaleY (float g)計算方法對根視 圖進行壓縮后,壓縮后的根視圖的寬度為L/2、高度為H、中心點與屏的中心點重合。通過調(diào)用ObjectAnimator方法對根視圖向左或向右進行平移操作,平移長度為屏幕寬度的四分之一,即為 L/4。具體的,使用 0bjectAnimator. ofFloat (view, “translationX”,L/4)方法來實現(xiàn)平移效果,其中第一個參數(shù)view為對象名,即該view的為根視圖,第二個參數(shù)為屬性名,該“translationX”表示動畫屬性為沿X軸平移,第三個參數(shù)為可變參數(shù),該參數(shù)為根視圖沿X軸平移的位移量,正數(shù)表示將根視圖向右平移,負數(shù)表示將根視圖向左平移。當根視圖移動到位后,激活動畫效果,完成OSD的壓縮。本發(fā)明還提供一種顯示終端基于Android應用的OSD壓縮裝置,用于實現(xiàn)上述方法。參照圖4,圖4為本發(fā)明顯示終端基于Android應用的OSD壓縮裝置一實施例的結(jié)構(gòu)示意圖。該顯示終端基于Android應用的OSD壓縮裝置包括獲取模塊100,用于獲取當前Activity的根視圖;Activity為Android的四大組件之一,該Activity包括一默認的顯示窗口,該顯不窗口具有一層一層的視圖,該一層一層的視圖包括一用于設(shè)置窗口大小的根視圖。壓縮模塊200,用于壓縮上述根視圖;當獲取模塊100獲取得到當前Activity的根視圖,將該根視圖發(fā)送壓縮模塊200。壓縮模塊200根據(jù)可根據(jù)預置的壓縮方法對該根視圖進行壓縮。應當說明的是,本實施例中的壓縮是指對該根視圖的大小進行壓縮,例如,可將上述根視圖壓縮為高度保持不變,寬度縮小一半的根視圖,即上述Activity通過壓縮后的顯示窗口顯示的區(qū)域等于原來顯示
窗口的一半。平移模塊300,用于將壓縮后的上述根視圖進行平移。壓縮模塊200對根視圖壓縮完成后,輸出一壓縮完成信號至平移模塊300,平移模塊300接收到該壓縮完成信號后,將壓縮后的根視圖移動至顯示屏對應的顯示區(qū)域,然后激活該OSD畫面的動畫效果,完成OSD壓縮操作。本發(fā)明通過獲取模塊100獲取Activity的根視圖,并通過壓縮模塊200調(diào)整該根視圖的大小,實現(xiàn)OSD中Activity的壓縮。由于OSD壓縮過程中,只對Activity層壓縮,無需對其他的應用和菜單進行壓縮,因此本發(fā)明提供的OSD壓縮裝置提高了 OSD壓縮的靈活性。參照圖5,圖5為圖4中獲取模塊的結(jié)構(gòu)示意圖。本實施例中,獲取模塊100包括獲取子塊101,用于當接收到用戶發(fā)送的OSD顯示命令時,獲取與上述Activity的窗口對應的布局文件;查找子塊102,用于根據(jù)上述根視圖的根控件從上述布局文件查找獲得對應的根視圖。例如,用戶在觀看電視時,可通過遙控器控制OSD畫面從全屏顯示切換至雙屏顯示。此時遙控器將發(fā)送一 OSD壓縮指令至電視機,當獲取子塊101接收到該OSD壓縮指令后,通過調(diào)用setContentView接口查找到當前Activity的窗口對應的布局文件,本實施例中該布局文件為XML格式的文件。當獲取子塊101查找獲得該布局文件后,由查找子塊102調(diào)用findViewByld方法,并根據(jù)根視圖的根控件從該布局文件中查找獲得對應的根視圖。該根控件為根視圖的標不符ID。參照圖6,圖6為圖4中壓縮模塊的結(jié)構(gòu)示意圖。本實施例中,上述壓縮模塊200包括
第一壓縮子塊201,用于調(diào)用沿寬度方向壓縮根視圖的setScaleX方法將上述根視圖的寬度壓縮為預置的第一閾值;第二壓縮子塊202,用于調(diào)用高度方向壓縮根視圖的setScaleY方法將上述根視圖的高度壓縮為預置的第二閾值。具體的,根視圖的壓縮的計算方法可根據(jù)實際需要進行設(shè)置,作為優(yōu)選,本實施例中查找子塊102(參照圖5所示)將查找獲得的根視圖輸出至第一壓縮子塊201,由第一壓縮子塊201調(diào)用setScaleX (float f)計算方法,使根視圖的寬度壓縮至預置的第一閾值;然后將壓縮后的根視圖輸出至第二壓縮子塊202,由第二壓縮子塊202調(diào)用setScaleY(floatg)計算方法,使根視圖的高度壓縮至預置的第二閾值。例如,電視機屏幕的寬度為L,高度為H,第一閾值為L/4,第二閾值為H/2。當電視機進入雙屏顯示時,則setScaleX(float f)中f的值為第一閾值與電視機屏幕的寬度的比值,即f=0. 25 ;setScaleY (float g)中g(shù)的值為第二閾值與電視機屏幕的高度的比值,即g=0. 5。通過setScaleX (0. 25)和setScaleY(0.5)將根視圖的寬度和高度分別壓縮至L/4和H/2。應當說明的是,本實施例中第一閾值和第二閾值的大小可根據(jù)雙屏顯示時顯示區(qū)域的大小進行設(shè)定,在此不作進一步限定。優(yōu)選的,本實施例中第一閾值為L/2,第二閾值為H ;上述寬度方向為Android系統(tǒng)定義的X方向,上述高度方向為Android系統(tǒng)定義的Y方向。本發(fā)明實施例提供的OSD壓縮裝置中,Android系統(tǒng)為具有setScaleX方法和setScaleY方法接口的Android系統(tǒng)。由于本實施例米用setScaleX(float f )和setScaleY(float g)計算方法實現(xiàn)根視圖的壓縮,該壓縮的計算方法可使壓縮后的畫面像素信息無損失,因此提高了 OSD壓縮后畫面顯示的效果。具體的,上述平移模塊300,用于調(diào)用ObjectAnimator方法對壓縮后的上述根視圖進行平移操作。當上述第二壓縮子塊202對根視圖的壓縮操作完成后發(fā)送一壓縮完成信號至平移模塊300,平移模塊300接收到第二壓縮子塊202所發(fā)送的壓縮完成信號后,將壓縮后的根視圖移動至顯示屏對應的顯示區(qū)域,然后激活該OSD畫面的動畫效果,以完成OSD的壓縮操作。例如,電視機雙屏顯示的顯示區(qū)域為左右均分的兩個半屏,則上述第一閾值為L/2和第二閾值為H,采用上述setScaleX (float f)和setScaleY (float g)計算方法對根視圖進行壓縮后,壓縮后的根視圖的寬度為L/2、高度為H、中心點與屏的中心點重合。平移模塊300通過調(diào)用ObjectAnimator方法對根視圖向左或向右進行平移操作,平移長度為屏幕寬度的四分之一,即為L/4。具體的,通過調(diào)用ObjectAnimator. ofFloat (view,“translationX”, L/4)方法來實現(xiàn)平移效果,其中第一個參數(shù)view為對象名,即該view的為根視圖,第二個參數(shù)為屬性名,該“translationX”表示動畫屬性為沿X軸平移,第三個參數(shù)為可變參數(shù),該參數(shù)為根視圖沿X軸平移的位移量,正數(shù)表示將根視圖向右平移,負數(shù)表示將根視圖向左平移。當根視圖移動到位后,激活動畫效果,完成OSD的壓縮。
以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。
權(quán)利要求
1.一種顯示終端基于Android應用的OSD壓縮方法,其特征在于,包括以下步驟 獲取當前Activity的根視圖; 壓縮所述根視圖; 將壓縮后的所述根視圖進行平移。
2.如權(quán)利要求I所述的OSD壓縮方法,其特征在于,所述獲取當前Activity的根視圖步驟具體包括 當接收到用戶發(fā)送的OSD顯示命令時,獲取與所述Activity的窗口對應的布局文件; 根據(jù)所述根視圖的根控件從所述布局文件查找獲得對應的根視圖。
3.如權(quán)利要求I所述的OSD壓縮方法,其特征在于,所述壓縮根視圖步驟具體包括 調(diào)用沿寬度方向壓縮根視圖的setScaleX方法將所述根視圖的寬度壓縮為預置的第一閾值; 調(diào)用沿高度方向壓縮根視圖的setScaleY方法將所述根視圖的高度壓縮為預置的第二閾值。
4.如權(quán)利要求3所述的OSD壓縮方法,其特征在于,所述第一閾值的大小等于所述根視圖的寬度的一半,所述第二閾值的大小等于所述根視圖的高度。
5.如權(quán)利要求I所述的OSD壓縮方法,其特征在于,所述將壓縮后的根視圖進行平移步驟包括 調(diào)用ObjectAnimator方法對壓縮后的所述根視圖進行平移操作。
6.一種顯示終端基于Android應用的OSD壓縮裝置,其特征在于,包括 獲取模塊,用于獲取當前Activity的根視圖; 壓縮模塊,用于壓縮所述根視圖; 平移模塊,用于將壓縮后的所述根視圖進行平移。
7.如權(quán)利要求6所述的OSD壓縮裝置,其特征在于,所述獲取模塊包括 獲取子塊,用于當接收到用戶發(fā)送的OSD顯示命令時,獲取與所述Activity的窗口對應的布局文件; 查找子塊,用于根據(jù)所述根視圖的根控件從所述布局文件查找獲得對應的根視圖。
8.如權(quán)利要求6所述的OSD壓縮裝置,其特征在于,所述壓縮模塊包括 第一壓縮子塊,用于調(diào)用沿寬度方向壓縮根視圖的setScaleX方法將所述根視圖的寬度壓縮為預置的第一閾值; 第二壓縮子塊,用于調(diào)用沿高度方向壓縮根視圖的setScaleY方法將所述根視圖的高度壓縮為預置的第二閾值。
9.如權(quán)利要求8所述的OSD壓縮裝置,其特征在于,所述第一閾值的大小等于所述根視圖的寬度的一半,所述第二閾值的大小等于所述根視圖的高度。
10.如權(quán)利要求6所述的OSD壓縮裝置,其特征在于,所述平移模塊,具體用于調(diào)用ObjectAnimator方法對壓縮后的所述根視圖進行平移操作。
全文摘要
本發(fā)明公開了一種顯示終端基于Android應用的OSD壓縮方法及裝置,其中所述OSD壓縮方法包括以下步驟獲取當前Activity的根視圖;壓縮所述根視圖;將壓縮后的所述根視圖進行平移。本發(fā)明提供的OSD壓縮方法提高了OSD壓縮的靈活性。
文檔編號H04N5/445GK102724456SQ201210183040
公開日2012年10月10日 申請日期2012年6月5日 優(yōu)先權(quán)日2012年6月5日
發(fā)明者劉衛(wèi)方, 陳濤, 韓菁 申請人:深圳Tcl新技術(shù)有限公司