一種虛擬鍵盤的顯示方法、控制裝置及觸摸設(shè)備的制作方法
【專利摘要】本發(fā)明提供一種虛擬鍵盤的顯示方法、控制裝置及觸摸設(shè)備,該方法包括:獲取用戶激活的輸入?yún)^(qū)域的位置信息;根據(jù)輸入?yún)^(qū)域的位置信息,以及虛擬鍵盤所需要的顯示區(qū)域尺寸,計算出所述虛擬鍵盤在屏幕上的顯示位置,以使所述虛擬鍵盤的位置盡量靠近所述用戶激活的輸入?yún)^(qū)域的位置;依據(jù)所述計算出的虛擬鍵盤的顯示位置,調(diào)整所述虛擬鍵盤對應(yīng)的繪圖表面上該虛擬鍵盤的位置;將所述虛擬鍵盤對應(yīng)的繪圖表面和所述激活的輸入?yún)^(qū)域所屬應(yīng)用程序?qū)?yīng)的繪圖表面進(jìn)行合成,并將合成后的數(shù)據(jù)存入硬件顯示緩沖區(qū)中,以進(jìn)行顯示。本發(fā)明的技術(shù)方案能夠提高輸入效率。
【專利說明】一種虛擬鍵盤的顯示方法、控制裝置及觸摸設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及用戶界面領(lǐng)域,尤其涉及一種虛擬鍵盤的顯示方法、控制裝置及觸摸設(shè)備。
【背景技術(shù)】
[0002]隨著智能移動終端的蓬勃發(fā)展,大型平板產(chǎn)品也必須支持觸摸的設(shè)計,因此智能電視應(yīng)運而生。一般的手機(jī)屏幕尺寸多為5寸左右,平板電腦的屏幕尺寸多為10寸左右,在智能移動終端中,當(dāng)使用者通過觸摸屏輸入文本時,虛擬鍵盤的位置均位于屏幕底部,對于10寸以下的設(shè)備來講,使用者尚可以在輸入文本的同時看到是否輸出正確;但對于具有22寸以上觸摸屏的設(shè)備來講,屏幕上文本輸入?yún)^(qū)域距離屏幕底部的距離有時就比較遠(yuǎn)了,用戶在盯著屏幕底部的虛擬鍵盤進(jìn)行點擊時,很難同時清晰看到較遠(yuǎn)位置的文本輸入?yún)^(qū)域的輸出文本是否正確,不僅容易影響輸入效率,還造成使用體驗的下降。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的在于提供一種虛擬鍵盤的顯示方法、控制裝置及觸摸設(shè)備,能夠提高輸入效率。
[0004]本發(fā)明一方面提供一種虛擬鍵盤的顯示方法,包括:
[0005]獲取用戶激活的輸入?yún)^(qū)域的位置信息;
[0006]根據(jù)輸入?yún)^(qū)域的位置信息,以及虛擬鍵盤所需要的顯示區(qū)域尺寸,計算出所述虛擬鍵盤在屏幕上的顯示位置,以使所述虛擬鍵盤的位置盡量靠近所述用戶激活的輸入?yún)^(qū)域的位置;
[0007]依據(jù)所述計算出的虛擬鍵盤的顯示位置,調(diào)整所述虛擬鍵盤對應(yīng)的繪圖表面上該虛擬鍵盤的位置;
[0008]將所述虛擬鍵盤對應(yīng)的繪圖表面和所述激活的輸入?yún)^(qū)域所屬應(yīng)用程序?qū)?yīng)的繪圖表面進(jìn)行合成,并將合成后的數(shù)據(jù)存入硬件顯示緩沖區(qū)中,以進(jìn)行顯示。
[0009]在一個優(yōu)選的實施例中,當(dāng)所述用戶激活的輸入?yún)^(qū)域的形狀為矩形時,所述獲取用戶激活的輸入?yún)^(qū)域的位置信息包括:獲取用戶激活的輸入?yún)^(qū)域的四個角的坐標(biāo)信息。
[0010]在一個優(yōu)選的實施例中,所述計算出所述虛擬鍵盤在屏幕上的顯示位置包括:當(dāng)所述激活的輸入?yún)^(qū)域的底部到屏幕底部的距離大于所述虛擬鍵盤的垂直尺寸時,將所述虛擬鍵盤的位置確定為虛擬鍵盤的頂部貼近所述輸入?yún)^(qū)域的底部的位置。
[0011]在一個優(yōu)選的實施例中,其特征在于,所述硬件顯示緩沖區(qū)為硬件幀緩沖區(qū)。
[0012]在一個優(yōu)選的實施例中,所述虛擬鍵盤對應(yīng)的繪圖表面為獨立于所述輸入?yún)^(qū)域所屬應(yīng)用程序的繪圖表面。
[0013]本發(fā)明另一方面還提供一種虛擬鍵盤的顯示控制裝置,包括:
[0014]位置信息獲取單元,用于獲取用戶激活的輸入?yún)^(qū)域的位置信息;
[0015]鍵盤位置計算單元,用于根據(jù)所述輸入?yún)^(qū)域的位置信息,以及虛擬鍵盤所需要的顯示區(qū)域的尺寸,計算出所述虛擬鍵盤在屏幕上的顯示位置,以使所述虛擬鍵盤的位置盡量靠近所述用戶激活的輸入?yún)^(qū)域的位置;
[0016]鍵盤位置調(diào)整單元,用于依據(jù)所述計算出的虛擬鍵盤的顯示位置,調(diào)整所述虛擬鍵盤對應(yīng)的繪圖表面上該虛擬鍵盤的位置;
[0017]合成單元,用于將所述虛擬鍵盤對應(yīng)的繪圖表面和所述激活的輸入?yún)^(qū)域所屬應(yīng)用程序?qū)?yīng)的繪圖表面進(jìn)行合成,并將合成后的數(shù)據(jù)存入硬件顯示緩沖區(qū)中,以便進(jìn)行顯示。
[0018]在一個優(yōu)選的實施例中,當(dāng)所述用戶激活的輸入?yún)^(qū)域的形狀為矩形時,所述位置信息獲取單元具體用于獲取用戶激活的輸入?yún)^(qū)域的四個角的坐標(biāo)信息。
[0019]在一個優(yōu)選的實施例中,鍵盤位置計算單元具體用于當(dāng)所述激活的輸入?yún)^(qū)域的底部到屏幕底部的距離大于所述虛擬鍵盤的垂直尺寸時,將所述虛擬鍵盤的位置確定為虛擬鍵盤的頂部貼近所述輸入?yún)^(qū)域的底部的位置。
[0020]在一個優(yōu)選的實施例中,所述硬件顯示緩沖區(qū)為硬件幀緩沖區(qū)。
[0021]在一個優(yōu)選的實施例中,所述虛擬鍵盤對應(yīng)的繪圖表面為獨立于所述輸入?yún)^(qū)域所屬應(yīng)用程序的繪圖表面。
[0022]本發(fā)明再一方面還提供一種觸摸設(shè)備,包括上述的虛擬鍵盤的顯示控制裝置。
[0023]與現(xiàn)有技術(shù)相比,本發(fā)明在用戶激活輸入?yún)^(qū)域時,計算出虛擬鍵盤在屏幕上的顯示位置,該顯示位置盡量靠近用戶激活的輸入?yún)^(qū)域的位置,并以該顯示位置對虛擬鍵盤的位置進(jìn)行調(diào)整,使得最終虛擬鍵盤顯示在輸入?yún)^(qū)域的附近,方便用戶在點擊虛擬鍵盤的同時查看輸入?yún)^(qū)域內(nèi)的輸出文本是否正確,提高了輸入效率,而且提升了用戶體驗。
【專利附圖】
【附圖說明】
[0024]圖1為本發(fā)明實施例提供的一種虛擬鍵盤的顯示方法的流程圖;
[0025]圖2為將本發(fā)明實施例中的虛擬鍵盤顯示方法應(yīng)用于Android系統(tǒng)的移動終端的流程圖;
[0026]圖3為本發(fā)明實施例提供的一種虛擬鍵盤的顯示控制裝置的示意圖。
【具體實施方式】
[0027]為使對本發(fā)明的目的、構(gòu)造、特征、及其功能有進(jìn)一步的了解,茲配合實施例詳細(xì)說明如下。
[0028]圖1示出了本發(fā)明實施例提供的一種虛擬鍵盤的顯示方法的流程圖,如圖1所示,該虛擬鍵盤的顯示方法包括如下步驟:
[0029]步驟SlOl:獲取用戶激活的輸入?yún)^(qū)域的位置信息;
[0030]步驟S102:根據(jù)輸入?yún)^(qū)域的位置信息,以及虛擬鍵盤所需要的顯示區(qū)域尺寸,計算出所述虛擬鍵盤在屏幕上的顯示位置,以使該虛擬鍵盤的位置盡量靠近用戶激活的輸入?yún)^(qū)域的位置;
[0031]步驟S103:依據(jù)計算出的虛擬鍵盤的顯示位置,調(diào)整虛擬鍵盤對應(yīng)的繪圖表面上該虛擬鍵盤的位置;
[0032]步驟S104:將該虛擬鍵盤對應(yīng)的繪圖表面和激活的輸入?yún)^(qū)域所屬應(yīng)用程序?qū)?yīng)的繪圖表面進(jìn)行合成,將合成后的數(shù)據(jù)存入硬件顯示緩沖區(qū)中,以進(jìn)行顯示。[0033]本發(fā)明實施例中的虛擬鍵盤的顯示方法,在用戶激活輸入?yún)^(qū)域時,計算出虛擬鍵盤在屏幕上的顯示位置,該顯示位置盡量靠近用戶激活的輸入?yún)^(qū)域的位置,并以該顯示位置對虛擬鍵盤的位置進(jìn)行調(diào)整,使得最終虛擬鍵盤顯示在輸入?yún)^(qū)域的附近,方便用戶在點擊虛擬鍵盤的同時查看輸入?yún)^(qū)域內(nèi)的輸出文本是否正確,提高了輸入效率,而且提升了用戶體驗。
[0034]以下以Android系統(tǒng)的移動終端為例詳細(xì)說明本實施例中的虛擬鍵盤的顯示方法的具體實現(xiàn)。圖2示出了該具體實現(xiàn)的流程圖。
[0035]在Android系統(tǒng)中,硬件顯示緩沖區(qū)為硬件巾貞轉(zhuǎn)緩沖區(qū),稱為Frame Buffer ;每個繪圖表面對應(yīng)一個surface對象,每個surface對象關(guān)聯(lián)一個UI (用戶界面)元數(shù)據(jù)緩沖區(qū)堆棧;系統(tǒng)的框架層(OS Framework)中的SurfaceFlinger服務(wù)負(fù)責(zé)創(chuàng)建surface對象并傳遞給應(yīng)用程序使用,還負(fù)責(zé)對應(yīng)用程序的surface對象進(jìn)行合成渲染,并發(fā)送至硬件幀轉(zhuǎn)緩沖區(qū)中進(jìn)行顯示。
[0036]基于該Android系統(tǒng)的架構(gòu),圖2中示出的虛擬鍵盤的顯示方法包括如下步驟:
[0037]步驟S201:用戶通過點擊屏幕上的輸入?yún)^(qū)域激活該輸入?yún)^(qū)域;
[0038]在實際的應(yīng)用程序界面中,用戶的輸入?yún)^(qū)域多為文本框,在Android系統(tǒng)中為EditText類所綁定的控件。
[0039]步驟S202:當(dāng)用戶激活的輸入?yún)^(qū)域為矩形時,SurfaceFlinger服務(wù)獲取用戶激活的輸入?yún)^(qū)域的四個角的坐標(biāo)信息。
[0040]步驟S203:根據(jù)上述輸入?yún)^(qū)域的四個角的坐標(biāo)信息,以及虛擬鍵盤所需要的顯示區(qū)域尺寸,SurfaceFlinger服務(wù)計算出虛擬鍵盤在屏幕上的顯示位置,以使虛擬鍵盤的位置盡量靠近用戶激活的輸入?yún)^(qū)域的位置。
[0041]按照通常人們的使用習(xí)慣,應(yīng)該盡量將虛擬鍵盤的位置設(shè)置在輸入?yún)^(qū)域的下方,因此在一個優(yōu)選的實施例中,當(dāng)用戶激活的輸入?yún)^(qū)域的底部到屏幕底部的距離大于虛擬鍵盤的垂直尺寸時,可以將虛擬鍵盤的位置確定為虛擬鍵盤的頂部貼近上述激活的輸入?yún)^(qū)域的底部的位置。
[0042]需要說明的是,虛擬鍵盤的顯示位置應(yīng)該會受到用戶激活的輸入?yún)^(qū)域在屏幕上的顯示位置影響,當(dāng)輸入?yún)^(qū)域距離屏幕底部過近以至于已經(jīng)無法在輸入?yún)^(qū)域和屏幕底部之間完整顯示虛擬鍵盤時,應(yīng)該優(yōu)先在其他能夠完整顯示虛擬鍵盤且盡量靠近輸入?yún)^(qū)域的位置顯示虛擬鍵盤,例如當(dāng)輸入?yún)^(qū)域位于屏幕底部附近時,虛擬鍵盤的位置可以為虛擬鍵盤的底部貼近輸入?yún)^(qū)域的頂部的位置。
[0043]由于現(xiàn)有Android系統(tǒng)中的虛擬鍵盤都是以默認(rèn)位置的方式進(jìn)行顯示,因此在本發(fā)明中需要對現(xiàn)有的SurfaceFlinger服務(wù)進(jìn)行相應(yīng)的改進(jìn),例如可以為SurfaceFlinger服務(wù)創(chuàng)建新的函數(shù)(Function),該函數(shù)的作用在于接收輸入?yún)^(qū)域的位置信息,計算出步驟S203中所需的虛擬鍵盤的顯示位置。
[0044]步驟S204:SurfaceFlinger服務(wù)為虛擬鍵盤創(chuàng)建單獨的繪圖表面;
[0045]在現(xiàn)有技術(shù)中,應(yīng)用程序的虛擬鍵盤顯示與應(yīng)用程序主界面的繪畫至同一個繪圖表面上,且虛擬鍵盤的默認(rèn)顯示位置為屏幕的底部,這使得虛擬鍵盤被呼出顯示的同時,應(yīng)用程序主界面的原有顯示內(nèi)容將發(fā)生變化,例如向上移動或者將虛擬鍵盤所占區(qū)域的內(nèi)容進(jìn)行截斷。[0046]在本發(fā)明實施例中,為虛擬鍵盤創(chuàng)建單獨的繪圖表面,可以方便靈活調(diào)整虛擬鍵盤的顯示位置,且可以虛擬鍵盤顯示在輸入?yún)^(qū)域附近的同時不改變應(yīng)用程序主界面的內(nèi)容。
[0047]步驟S205 =SurfaceFlinger服務(wù)將虛擬鍵盤對應(yīng)的繪圖表面和激活的輸入?yún)^(qū)域所屬的應(yīng)用程序?qū)?yīng)的繪圖表面進(jìn)行合成。
[0048]對于不同繪圖表面的合成在Android系統(tǒng)中是由SurfaceFlinger服務(wù)來完成的,在本實施例中,由SurfaceFlinger服務(wù)將虛擬鍵盤對應(yīng)的繪圖表面和輸入?yún)^(qū)域所屬的應(yīng)用程序?qū)?yīng)的繪圖表面進(jìn)行合成,以使合成后的數(shù)據(jù)中,虛擬鍵盤盡量靠近用戶激活的輸入?yún)^(qū)域。
[0049]步驟S206:SurfaceFlinger服務(wù)講合成后的數(shù)據(jù)存入硬件巾貞轉(zhuǎn)緩沖區(qū)FrameBuffer中,以進(jìn)行顯示。
[0050]這樣,在用戶激活輸入?yún)^(qū)域以后,SurfaceFlinger服務(wù)根據(jù)輸入?yún)^(qū)域的位置計算出虛擬鍵盤的最佳出現(xiàn)位置,之后調(diào)整虛擬鍵盤在其繪圖表面上的位置,并將虛擬鍵盤的繪圖表面和輸入?yún)^(qū)域所屬的繪圖表面進(jìn)行合并,并存入緩沖區(qū)中進(jìn)行顯示,實現(xiàn)了當(dāng)用戶激活輸入?yún)^(qū)域后就會在輸入?yún)^(qū)域附近呼出虛擬鍵盤的效果,用戶在點擊虛擬鍵盤的同時可以很容易地查看輸入?yún)^(qū)域內(nèi)的輸出文本是否正確,因此提高了輸入的效率,同時提升了用戶的體驗。
[0051]本發(fā)明相應(yīng)還提供一種虛擬鍵盤的顯示控制裝置,如圖3所示,該裝置包括:位置信息獲取單元301、鍵盤位置計算單元302、鍵盤位置調(diào)整單元303、合成單元304。
[0052]其中,位置信息獲取單元301用于獲取用戶激活的輸入?yún)^(qū)域的位置信息;鍵盤位置計算單元302用于根據(jù)上述輸入?yún)^(qū)域的位置信息,以及虛擬鍵盤所需要的顯示區(qū)域的尺寸,計算出該虛擬鍵盤在屏幕上的顯示位置,以使所述虛擬鍵盤的位置盡量靠近所述用戶激活的輸入?yún)^(qū)域的位置;鍵盤位置調(diào)整單元303用于依據(jù)上述計算出的虛擬鍵盤的顯示位置,調(diào)整該虛擬鍵盤對應(yīng)的繪圖表面上該虛擬鍵盤的位置;合成單元304用于將上述虛擬鍵盤對應(yīng)的繪圖表面和用戶激活的輸入?yún)^(qū)域所屬應(yīng)用程序?qū)?yīng)的繪圖表面進(jìn)行合成,并將合成后的數(shù)據(jù)存入硬件顯示緩沖區(qū)中,以便進(jìn)行顯示。
[0053]本發(fā)明實施例中的虛擬鍵盤的顯示控制裝置,在用戶激活輸入?yún)^(qū)域時,計算出虛擬鍵盤在屏幕上的顯示位置,該顯示位置盡量靠近用戶激活的輸入?yún)^(qū)域的位置,并以該顯示位置對虛擬鍵盤的位置進(jìn)行調(diào)整,使得最終虛擬鍵盤顯示在輸入?yún)^(qū)域的附近,方便用戶在點擊虛擬鍵盤的同時查看輸入?yún)^(qū)域內(nèi)的輸出文本是否正確,提高了輸入效率,而且提升了用戶體驗。
[0054]在一個優(yōu)選的實施例中,用戶所激活的輸入?yún)^(qū)域的形狀為矩形,位置信息獲取單元301具體用于獲取用戶激活的輸入?yún)^(qū)域的四個角的坐標(biāo)信息。
[0055]鍵盤位置計算單元302在計算虛擬鍵盤的顯示位置時,當(dāng)發(fā)現(xiàn)用戶所激活的輸入?yún)^(qū)域的底部到屏幕底部的距離大于要顯示的虛擬鍵盤的垂直尺寸時,將虛擬鍵盤的位置確定為該虛擬鍵盤的頂部貼近上述輸入?yún)^(qū)域的底部的位置。
[0056]在實際中,硬件顯示緩沖區(qū)可以為硬件幀緩沖區(qū),稱為Frame Buffer。
[0057]在本實施例中,虛擬鍵盤對應(yīng)的繪圖表面可以為獨立于上述輸入?yún)^(qū)域所屬應(yīng)用程序的繪圖表面。[0058]本發(fā)明實施例還相應(yīng)提供一種觸摸設(shè)備,該觸摸設(shè)備包括上述實施例中的虛擬鍵盤的顯示控制裝置。
[0059]本發(fā)明已由上述相關(guān)實施例加以描述,然而上述實施例僅為實施本發(fā)明的范例。必需指出的是,已揭露的實施例并未限制本發(fā)明的范圍。相反地,在不脫離本發(fā)明的精神和范圍內(nèi)所作的更動與潤飾,均屬本發(fā)明的專利保護(hù)范圍。
【權(quán)利要求】
1.一種虛擬鍵盤的顯示方法,其特征在于,包括: 獲取用戶激活的輸入?yún)^(qū)域的位置信息; 根據(jù)輸入?yún)^(qū)域的位置信息,以及虛擬鍵盤所需要的顯示區(qū)域尺寸,計算出所述虛擬鍵盤在屏幕上的顯示位置,以使所述虛擬鍵盤的位置盡量靠近所述用戶激活的輸入?yún)^(qū)域的位置; 依據(jù)所述計算出的虛擬鍵盤的顯示位置,調(diào)整所述虛擬鍵盤對應(yīng)的繪圖表面上該虛擬鍵盤的位置; 將所述虛擬鍵盤對應(yīng)的繪圖表面和所述激活的輸入?yún)^(qū)域所屬應(yīng)用程序?qū)?yīng)的繪圖表面進(jìn)行合成,并將合成后的數(shù)據(jù)存入硬件顯示緩沖區(qū)中,以進(jìn)行顯示。
2.如權(quán)利要求1所述的方法,其特征在于,當(dāng)所述用戶激活的輸入?yún)^(qū)域的形狀為矩形時,所述獲取用戶激活的輸入?yún)^(qū)域的位置信息包括:獲取用戶激活的輸入?yún)^(qū)域的四個角的坐標(biāo)信息。
3.如權(quán)利要求1所述的方法,其特征在于,所述計算出所述虛擬鍵盤在屏幕上的顯示位置包括:當(dāng)所述激活的輸入?yún)^(qū)域的底部到屏幕底部的距離大于所述虛擬鍵盤的垂直尺寸時,將所述虛擬鍵盤的位置確定為虛擬鍵盤的頂部貼近所述輸入?yún)^(qū)域的底部的位置。
4.如權(quán)利要求1所述的方法,其特征在于,所述硬件顯示緩沖區(qū)為硬件幀緩沖區(qū)。
5.如權(quán)利要求1所述的方法,其特征在于,所述虛擬鍵盤對應(yīng)的繪圖表面為獨立于所述輸入?yún)^(qū)域所屬應(yīng)用程序的繪圖表面。
6.一種虛擬鍵盤的顯示控制裝置,其特征在于,包括: 位置信息獲取單元,用于獲取用戶激活的輸入?yún)^(qū)域的位置信息; 鍵盤位置計算單元,用于根據(jù)所述輸入?yún)^(qū)域的位置信息,以及虛擬鍵盤所需要的顯示區(qū)域的尺寸,計算出所述虛擬鍵盤在屏幕上的顯示位置,以使所述虛擬鍵盤的位置盡量靠近所述用戶激活的輸入?yún)^(qū)域的位置; 鍵盤位置調(diào)整單元,用于依據(jù)所述計算出的虛擬鍵盤的顯示位置,調(diào)整所述虛擬鍵盤對應(yīng)的繪圖表面上該虛擬鍵盤的位置; 合成單元,用于將所述虛擬鍵盤對應(yīng)的繪圖表面和所述激活的輸入?yún)^(qū)域所屬應(yīng)用程序?qū)?yīng)的繪圖表面進(jìn)行合成,并將合成后的數(shù)據(jù)存入硬件顯示緩沖區(qū)中,以便進(jìn)行顯示。
7.如權(quán)利要求6所述的裝置,其特征在于,當(dāng)所述用戶激活的輸入?yún)^(qū)域的形狀為矩形時,所述位置信息獲取單元具體用于獲取用戶激活的輸入?yún)^(qū)域的四個角的坐標(biāo)信息。
8.如權(quán)利要求6所述的裝置,其特征在于,鍵盤位置計算單元具體用于當(dāng)所述激活的輸入?yún)^(qū)域的底部到屏幕底部的距離大于所述虛擬鍵盤的垂直尺寸時,將所述虛擬鍵盤的位置確定為虛擬鍵盤的頂部貼近所述輸入?yún)^(qū)域的底部的位置。
9.如權(quán)利要求6所述的裝置,其特征在于,所述硬件顯示緩沖區(qū)為硬件幀緩沖區(qū)。
10.如權(quán)利要求6所述的裝置,其特征在于,所述虛擬鍵盤對應(yīng)的繪圖表面為獨立于所述輸入?yún)^(qū)域所屬應(yīng)用程序的繪圖表面。
11.一種觸摸設(shè)備,其特征在于,包括如權(quán)利要求6至10中任意一項所述的虛擬鍵盤的顯示控制裝置。
【文檔編號】G06F3/0488GK103577104SQ201310461208
【公開日】2014年2月12日 申請日期:2013年9月27日 優(yōu)先權(quán)日:2013年9月27日
【發(fā)明者】陳冠翰, 楊豐銘 申請人:蘇州佳世達(dá)電通有限公司, 佳世達(dá)科技股份有限公司