專(zhuān)利名稱(chēng):一種基于滾動(dòng)控件實(shí)現(xiàn)內(nèi)容選擇的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于滾動(dòng)控件實(shí)現(xiàn)內(nèi)容選擇的方法及裝置,屬于通訊技術(shù)領(lǐng)域。
背景技術(shù):
現(xiàn)有的基于滾動(dòng)控件實(shí)現(xiàn)內(nèi)容選擇的方法,能夠根據(jù)觸摸屏上手指或手寫(xiě)筆的操作或鼠標(biāo)的移動(dòng)操作實(shí)時(shí)的選擇滾動(dòng)條中的內(nèi)容。在實(shí)現(xiàn)本發(fā)明過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問(wèn)題現(xiàn)有技術(shù)并不支持在手指或手寫(xiě)筆抬起后或鼠標(biāo)按鍵抬起后滾動(dòng)條的滾動(dòng),由于實(shí)際的操作中,在手指或手寫(xiě)筆到達(dá)觸摸屏的邊緣時(shí),用戶(hù)想繼續(xù)選擇滾動(dòng)條中的內(nèi)容,只有將手指或手寫(xiě)筆抬起后回到觸摸屏的中央處再次進(jìn)行選擇,這樣就給用戶(hù)帶來(lái)了不便。
發(fā)明內(nèi)容
本發(fā)明提供了一種基于滾動(dòng)控件實(shí)現(xiàn)內(nèi)容選擇的方法及裝置,以解決現(xiàn)有技術(shù)中使用滾動(dòng)控件的用戶(hù)在到達(dá)觸摸屏的邊緣或鼠標(biāo)沒(méi)有操作空間時(shí)需要進(jìn)行二次選擇的問(wèn)題,為此本發(fā)明采用如下的技術(shù)方案本發(fā)明實(shí)施例提供了一種基于滾動(dòng)控件實(shí)現(xiàn)內(nèi)容選擇的方法,包括記錄點(diǎn)擊物的位置及對(duì)應(yīng)的時(shí)間;若根據(jù)所述點(diǎn)擊物抬起時(shí)的位置與所述記錄的最后時(shí)間對(duì)應(yīng)的位置得到的線速度初始值不為0,則根據(jù)所述線速度的初始值獲得相應(yīng)的位移量,并根據(jù)所述位移量調(diào)整滾動(dòng)控件,直到所述位移量為0選擇到相應(yīng)內(nèi)容。本發(fā)明實(shí)施例還提供了一種基于滾動(dòng)控件實(shí)現(xiàn)內(nèi)容選擇的裝置,包括記錄模塊,用于記錄點(diǎn)擊物的位置及對(duì)應(yīng)的時(shí)間;線速度獲取模塊,用于根據(jù)所述點(diǎn)擊物抬起時(shí)的位置與所述記錄的最后時(shí)間對(duì)應(yīng)的位置獲得的線速度初始值;判斷模塊,用于判斷所述線速度獲取模塊獲得的所述線速度初始值是否為0,若是,直接選擇到相應(yīng)內(nèi)容;若否,則執(zhí)行位移量獲取模塊;位移量獲取模塊,用于根據(jù)所述線速度的初始值獲得相應(yīng)的位移量;調(diào)整選擇模塊,用于根據(jù)所述位移量獲取模塊獲得的位移量調(diào)整滾動(dòng)控件,直到所述位移量為0選擇到相應(yīng)內(nèi)容。本發(fā)明實(shí)施方式提供的技術(shù)方案通過(guò)點(diǎn)擊物抬起前后時(shí)間對(duì)應(yīng)的位移獲得相應(yīng)的線速度初始值,并根據(jù)所述初始值對(duì)滾動(dòng)控件繼續(xù)進(jìn)行操作并選擇到相應(yīng)內(nèi)容,保證了用戶(hù)在到達(dá)觸摸屏的邊緣或鼠標(biāo)沒(méi)有操作空間時(shí)仍能選擇到所需要的內(nèi)容,方便了用戶(hù), 提高了體驗(yàn)感。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實(shí)施例所述的一種基于滾動(dòng)控件實(shí)現(xiàn)內(nèi)容選擇的方法的流程示意圖;圖2 (a)是本發(fā)明實(shí)施例所述的當(dāng)滾動(dòng)條到達(dá)右邊界時(shí),點(diǎn)擊物的移動(dòng)距離P和邊界長(zhǎng)度Xmax之差(P-Xmax) (mm)與內(nèi)容移動(dòng)的距離X(mm)之間關(guān)系的示意圖;圖2(b)是本發(fā)明實(shí)施例所述的當(dāng)滾動(dòng)條到達(dá)左邊界時(shí),點(diǎn)擊物的移動(dòng)距離P(mm) 與內(nèi)容移動(dòng)的距離X(mm)之間關(guān)系的示意圖;圖3是本發(fā)明實(shí)施例所述的以縱坐標(biāo)方向的滾動(dòng)條且具體有15條滾動(dòng)內(nèi)容為例基于滾動(dòng)控件實(shí)現(xiàn)內(nèi)容選擇的方法的流程示意圖;圖4是本發(fā)明實(shí)施例所述的一種基于滾動(dòng)控件實(shí)現(xiàn)內(nèi)容選擇的裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面結(jié)合說(shuō)明書(shū)附圖來(lái)說(shuō)明本發(fā)明的具體實(shí)施方式
。本說(shuō)明書(shū)主要以本發(fā)明在即時(shí)通信服務(wù)中的應(yīng)用作為最佳實(shí)施例,當(dāng)然,實(shí)際應(yīng)用中也可以用于網(wǎng)絡(luò)郵件服務(wù)系統(tǒng)、網(wǎng)絡(luò)協(xié)同工作服務(wù)系統(tǒng)等其它互聯(lián)網(wǎng)服務(wù)系統(tǒng)。在本發(fā)明實(shí)施方式提供的一種基于滾動(dòng)控件實(shí)現(xiàn)內(nèi)容選擇的方法,如圖1所示, 包括步驟11、記錄點(diǎn)擊物的位置及對(duì)應(yīng)的時(shí)間;具體地,所述點(diǎn)擊物可以是觸摸設(shè)備上的手指或手寫(xiě)筆,也可以是鼠標(biāo)按鍵;若在windows系統(tǒng)中,通常將手指或手寫(xiě)筆的點(diǎn)擊事件映射為鼠標(biāo)點(diǎn)擊事件手指或手寫(xiě)筆觸摸按下對(duì)應(yīng)鼠標(biāo)按鍵按下(MouseButtonDown);手指或手寫(xiě)筆觸摸移動(dòng)對(duì)應(yīng)鼠標(biāo)移動(dòng) (MouseMove);手指或手寫(xiě)筆觸摸抬起對(duì)應(yīng)鼠標(biāo)按鍵抬起(MouseButtonUp);利用對(duì)應(yīng)的預(yù)事件 PreviewMouseButtonDown、PreviewMouseMove 禾口 PreviewMouseButtonUp 可以在滾動(dòng)控件接收到鼠標(biāo)消息之前截獲事件;例如,在I^reviewMouseButtonDown預(yù)事件中創(chuàng)建一個(gè)初始化點(diǎn)擊物觸摸軌跡記錄,并記錄點(diǎn)擊物的位置坐標(biāo)和時(shí)間;在I^reviewMouseMove預(yù)事件中記錄點(diǎn)擊物每次移動(dòng)后的位置坐標(biāo)和對(duì)應(yīng)時(shí)間;在I^reviewMouseButtonUp預(yù)事件中記錄手指抬起時(shí)的位置和對(duì)應(yīng)時(shí)間,并結(jié)束軌跡記錄。進(jìn)一步,首先,設(shè)定時(shí)間間隔,所述時(shí)間間隔可以是ls,也可以是10毫米,根據(jù)用戶(hù)操作習(xí)慣或使用經(jīng)驗(yàn)確定;然后,每隔所述時(shí)間間隔記錄下點(diǎn)擊物的位置及對(duì)應(yīng)的時(shí)間 具體可以建立二維直角坐標(biāo)系,記錄下點(diǎn)擊物的坐標(biāo)值及對(duì)應(yīng)的時(shí)間。步驟12、判斷根據(jù)所述點(diǎn)擊物抬起時(shí)的位置與所述記錄的最后時(shí)間對(duì)應(yīng)的位置得到的線速度初始值是否為0,若是,則執(zhí)行步驟13 ;若否,則執(zhí)行步驟14 ;具體地,若點(diǎn)擊物抬起時(shí)的位置為(Xn,Yn)對(duì)應(yīng)時(shí)間為T(mén)n,記錄的最后時(shí)間為T(mén)lri 對(duì)應(yīng)的位置為(Xlri,Ylri),則線速度的初始值為(IXn-X1JJYn-YlriIV(Tn-Tlri);若線速度初始值為0,則說(shuō)明用戶(hù)抬起時(shí)已經(jīng)選定了需要的內(nèi)容,而若線速度初始值不為0,則說(shuō)明抬起時(shí)還想繼續(xù)選擇其它的內(nèi)容,即根據(jù)所述線速度初始值就能了解用戶(hù)的選擇意圖。
步驟13、直接選擇到相應(yīng)內(nèi)容。步驟14、根據(jù)所述線速度的初始值獲得相應(yīng)的位移量,并根據(jù)所述位移量調(diào)整滾動(dòng)控件,直到所述位移量為0選擇到相應(yīng)內(nèi)容。具體地,首先,預(yù)先設(shè)定加速度,所述加速度可以是1 (位移/秒),也可以是1 (位移/毫秒),根據(jù)用戶(hù)操作習(xí)慣或使用經(jīng)驗(yàn)確定例如橫坐標(biāo)方向線速度初始值為5mm/ ms,無(wú)縱坐標(biāo)方向線速度初始值,設(shè)定加速度為lmm/ms,由于時(shí)間均為單位時(shí)間故可忽略時(shí)間單位,則最初的位移量為5-1 = 4mm,也就是調(diào)整滾動(dòng)控件中滾動(dòng)條滾動(dòng)4mm,此時(shí)線速度也減小為4mm/ms ;繼續(xù)獲得位移量為4-1 = 3mm,繼續(xù)調(diào)整滾動(dòng)控件中滾動(dòng)條滾動(dòng)3mm,此時(shí)線速度也減小為3mm/ms ;以此類(lèi)推,直到所述位移量減小為Omm/ms,則選擇到滾動(dòng)條經(jīng)過(guò)多次移動(dòng)后所在位置上的內(nèi)容。上述方法達(dá)到了一種慣性效果,即當(dāng)用戶(hù)手指在一個(gè)帶有滾動(dòng)條的控件上劃過(guò)時(shí),滾動(dòng)條不僅要跟隨用戶(hù)的手指滾動(dòng),而且在用戶(hù)手指離開(kāi)且具有一定初速度時(shí)能夠繼續(xù)滾動(dòng)慢慢停下來(lái)。進(jìn)一步,若滾動(dòng)控件中的滾動(dòng)條到達(dá)邊界,則在所述位移量為O時(shí),返回到所述滾動(dòng)控件中的滾動(dòng)條的邊界處,選擇到相應(yīng)內(nèi)容。例如橫坐標(biāo)方向線速度初始值為5mm/ms, 無(wú)縱坐標(biāo)方向線速度初始值,設(shè)定加速度為lmm/ms,由于時(shí)間均為單位時(shí)間故可忽略時(shí)間單位,則最初的位移量為5-1 = 4mm,也就是調(diào)整滾動(dòng)控件中滾動(dòng)條滾動(dòng)4mm,但此時(shí)滾動(dòng)條橫坐標(biāo)相應(yīng)內(nèi)容只剩下3mm可以顯示,那么在所述位移量減小為O時(shí),返回到所述滾動(dòng)控件中的滾動(dòng)條的邊界處,選擇到相應(yīng)內(nèi)容。在返回到所述滾動(dòng)控件中的滾動(dòng)條邊界的過(guò)程可以播放動(dòng)畫(huà)或圖片?;蛘?,若在滾動(dòng)條到達(dá)邊界時(shí),若所述滾動(dòng)控件中的滾動(dòng)條到達(dá)邊界,則在所述逐漸遞減位移量不為O時(shí),逐漸顯示空白,在所述位移量減小為O時(shí),返回到所述滾動(dòng)控件中的滾動(dòng)條的邊界處,選擇到相應(yīng)內(nèi)容。例如縱坐標(biāo)方向線速度初始值為5mm/ms,無(wú)橫坐標(biāo)方向線速度初始值,設(shè)定加速度為lmm/ms,由于時(shí)間均為單位時(shí)間故可忽略時(shí)間單位,則最初的位移量為5-1 = 4mm,也就是調(diào)整滾動(dòng)控件中滾動(dòng)條滾動(dòng)4mm,但此時(shí)滾動(dòng)條橫坐標(biāo)相應(yīng)內(nèi)容只剩下3mm,那么在滾動(dòng)條到達(dá)邊界位置后根據(jù)逐漸遞減的位移量,逐漸顯示空白,直到所述位移量減少為O時(shí),返回到所述滾動(dòng)控件中的滾動(dòng)條的邊界處,選擇到相應(yīng)內(nèi)容。在返回到所述滾動(dòng)控件中的滾動(dòng)條邊界的過(guò)程可以播放動(dòng)畫(huà)或圖片。此時(shí)就達(dá)到了一種彈性效果,即滾動(dòng)條到達(dá)邊界時(shí),若手指繼續(xù)向邊界拖動(dòng),則內(nèi)容移動(dòng)距離和手指移動(dòng)距離不成正比,而是呈現(xiàn)類(lèi)似彈簧的拉力效果,具體為手指移動(dòng)距離越大,內(nèi)容移動(dòng)時(shí)受到的阻力就越小,并且有一個(gè)內(nèi)容移動(dòng)的最大值,即無(wú)論手指移動(dòng)多遠(yuǎn),內(nèi)容移動(dòng)的距離只能無(wú)限接近此最大值,而不能達(dá)到或超過(guò)此最大值。具體地,現(xiàn)有的帶有滾動(dòng)條的控件都是通akrollViewer(滾動(dòng)事件)的基礎(chǔ)控件來(lái)實(shí)現(xiàn)滾動(dòng)功能的(如ListBox或RichEditBox),只要控制krollViewer的滾動(dòng)行為,點(diǎn)擊物的操作即可應(yīng)用到其他帶滾動(dòng)條的控件,通常都是通過(guò)訪問(wèn)krollViewer的 HorzontalOffset (水平分量)和VerticalOffset (垂直分量)屬性得到水平滾動(dòng)條的位置和豎直滾動(dòng)條的位置,進(jìn)一步以豎直分量的移動(dòng)為例,判斷滾動(dòng)條到達(dá)邊界的過(guò)程可以包括
double οIdVerticalOffset = this. _scrollViewer. VerticalOffset ;double ρ = oldVerticalOffset-y ;若ρ小于0,則滾動(dòng)條到達(dá)了開(kāi)始位置的邊界處;若ρ大于scrollViewer. krollzbleHeight (即垂直方向的最大位移),則滾動(dòng)條到達(dá)了結(jié)束位置的邊界處。上述方法中,還可以包括當(dāng)所述滾動(dòng)條到達(dá)邊界后,若點(diǎn)擊物繼續(xù)向邊界方向移動(dòng),則點(diǎn)擊物移動(dòng)的距離與滾動(dòng)條內(nèi)容移動(dòng)的距離(即顯示空白移動(dòng)的距離)就不在是線性關(guān)系。當(dāng)滾動(dòng)條到達(dá)左邊界時(shí)以滾動(dòng)條橫坐標(biāo)移動(dòng)內(nèi)容且點(diǎn)擊物的移動(dòng)距離P和邊界長(zhǎng)度Xmax之差(P-Xmax) (mm)大于0為例,此時(shí)(P-Xmax) (mm)與內(nèi)容移動(dòng)的距離X (mm)之間的關(guān)系如圖2(a)所示,具體地,X = aX {l_a/[a+(P-Xmax) ]},其中a為彈性最大值,可根據(jù)用戶(hù)操作習(xí)慣或使用經(jīng)驗(yàn)確定,本例中設(shè)定a = 20mm ;或者當(dāng)滾動(dòng)條到達(dá)左邊界時(shí),以滾動(dòng)條橫坐標(biāo)移動(dòng)內(nèi)容且點(diǎn)擊物的移動(dòng)距離P小于0為例,此時(shí)P(mm)與與內(nèi)容移動(dòng)的距離X(mm) 之間的關(guān)系如圖2 (b)所示,具體地,X = aX [-1+a/ (a-P)],其中a為彈性最大值,可根據(jù)用戶(hù)操作習(xí)慣或使用經(jīng)驗(yàn)確定,本例中設(shè)定a = 20mm。 本發(fā)明實(shí)施例以縱坐標(biāo)方向的滾動(dòng)條且具體有15條滾動(dòng)內(nèi)容為例,如圖3所示, 包括步驟31、記錄點(diǎn)擊物的位置及對(duì)應(yīng)時(shí)間;如記錄時(shí)間10:52:01對(duì)應(yīng)位置為(0,1); 10:52:03對(duì)應(yīng)位置為(0,2);步驟32、根據(jù)點(diǎn)擊物抬起時(shí)的位置與所述記錄的最后時(shí)間對(duì)應(yīng)的位置得到線速度初始值(不為0);如點(diǎn)擊物抬起時(shí)的位置為(0,10),對(duì)應(yīng)時(shí)間為10:52:05,則獲得線速度初始值為(10-2)/2s = 4 ;步驟33、根據(jù)設(shè)定的加速度依次調(diào)整所述線速度的初始值,獲得對(duì)應(yīng)的位移量,并根據(jù)所述位移量調(diào)整滾動(dòng)控件中的滾動(dòng)條,直到所述位移量為0,選擇到相應(yīng)內(nèi)容;如設(shè)定加速度為1,則最初的位移量為4-1 = 3,調(diào)整滾動(dòng)條滾動(dòng)3,到達(dá)位置(0,13);此時(shí)線速度減小為3,繼續(xù)獲得位移量3-1 = 2,調(diào)整滾動(dòng)條滾動(dòng)2,到達(dá)位置(0,1 ;這時(shí)線速度減小為2,獲得位移量2-1 = 1,滾動(dòng)條已滾動(dòng)到邊界,若圖2(a)中a設(shè)定為20mm,則此時(shí)會(huì)顯示
20
空白并移動(dòng)^"mm;此時(shí)線速度減小為1,獲得位移量1-1 = 0,則返回到滾動(dòng)條的第15條
內(nèi)容處。在返回到滾動(dòng)條第15條內(nèi)容的過(guò)程可以播放動(dòng)畫(huà)或圖片本發(fā)明的具體實(shí)施方式
還提供了一種基于滾動(dòng)控件實(shí)現(xiàn)內(nèi)容選擇的裝置的技術(shù)方案,該裝置可以設(shè)置于現(xiàn)有的滾動(dòng)控件中,也可以通過(guò)程序設(shè)置在新設(shè)計(jì)的滾動(dòng)控件中, 如圖4所示,包括記錄模塊41,用于記錄點(diǎn)擊物的位置及對(duì)應(yīng)的時(shí)間;具體地,所述點(diǎn)擊物可以是觸摸設(shè)備上的手指或手寫(xiě)筆,也可以是鼠標(biāo)按鍵;進(jìn)一步,首先,設(shè)定時(shí)間間隔,所述時(shí)間間隔可以是ls,也可以是10毫米,根據(jù)用戶(hù)操作習(xí)慣或使用經(jīng)驗(yàn)確定;然后,每隔所述時(shí)間間隔記錄下點(diǎn)擊物的位置及對(duì)應(yīng)的時(shí)間 具體可以建立二維直角坐標(biāo)系,記錄下點(diǎn)擊物的坐標(biāo)值及對(duì)應(yīng)的時(shí)間。線速度獲取模塊42,用于根據(jù)所述點(diǎn)擊物抬起時(shí)的位置與所述記錄模塊41記錄的最后時(shí)間對(duì)應(yīng)的位置獲得的線速度初始值;判斷模塊43,用于判斷所述線速度獲取模塊42獲得的所述線速度初始值是否為0,若是,直接選擇到相應(yīng)內(nèi)容;若否,則執(zhí)行位移量獲取模塊44 ;具體地,若點(diǎn)擊物抬起時(shí)的位置為(Xn,Yn)對(duì)應(yīng)時(shí)間為T(mén)n,記錄的最后時(shí)間為T(mén)lri 對(duì)應(yīng)的位置為(Xlri,Ylri),則線速度的初始值為(IXn-X1JJYn-YlriIV(Tn-Tlri);若線速度初始值為0,則說(shuō)明用戶(hù)抬起時(shí)已經(jīng)選定了需要的內(nèi)容,而若線速度初始值不為0,則說(shuō)明抬起時(shí)還想繼續(xù)選擇其它的內(nèi)容,即根據(jù)所述線速度初始值就能了解用戶(hù)的選擇意圖。位移量獲取模塊44,用于根據(jù)所述線速度的初始值獲得相應(yīng)的位移量;調(diào)整選擇模塊45,用于根據(jù)所述位移量獲取模塊44獲得的位移量調(diào)整滾動(dòng)控件, 直到所述位移量為0,選擇到相應(yīng)內(nèi)容。具體地,首先,預(yù)先設(shè)定加速度,所述加速度可以是1 (位移/秒),也可以是1 (位移/毫秒),根據(jù)用戶(hù)操作習(xí)慣或使用經(jīng)驗(yàn)確定例如橫坐標(biāo)方向線速度初始值為5mm/ ms,無(wú)縱坐標(biāo)方向線速度初始值,設(shè)定加速度為lmm/ms,由于時(shí)間均為單位時(shí)間故可忽略時(shí)間單位,則最初的位移量為5-1 = 4mm,也就是調(diào)整滾動(dòng)控件中滾動(dòng)條滾動(dòng)4mm,此時(shí)線速度也減小為4mm/ms ;繼續(xù)獲得位移量為4_1 = 3mm,繼續(xù)調(diào)整滾動(dòng)控件中滾動(dòng)條滾動(dòng)3mm,此時(shí)線速度也減小為3mm/ms ;以此類(lèi)推,直到線速度減小為Omm/ms,則選擇滾動(dòng)條經(jīng)過(guò)多次移動(dòng)后所在位置上的內(nèi)容。此時(shí)就達(dá)到了一種慣性效果,即當(dāng)用戶(hù)手指在一個(gè)帶有滾動(dòng)條的控件上劃過(guò)時(shí),滾動(dòng)條不僅要跟隨用戶(hù)的手指滾動(dòng),而且在用戶(hù)手指離開(kāi)且具有一定初速度時(shí)能夠繼續(xù)滾動(dòng)慢慢停下來(lái)。進(jìn)一步,若滾動(dòng)控件中的滾動(dòng)條到達(dá)邊界,則在所述位移量為O時(shí),返回到所述滾動(dòng)控件中的滾動(dòng)條的邊界處,選擇到相應(yīng)的內(nèi)容。例如橫坐標(biāo)方向線速度初始值為5mm/ ms,無(wú)縱坐標(biāo)方向線速度初始值,設(shè)定加速度為lmm/ms,由于時(shí)間均為單位時(shí)間故可忽略時(shí)間單位,則最初的位移量為5-1 = 4mm,也就是調(diào)整滾動(dòng)控件中滾動(dòng)條滾動(dòng)4mm,但此時(shí)滾動(dòng)條橫坐標(biāo)相應(yīng)內(nèi)容只剩下3mm可以顯示,那么在所述位移量減小為O時(shí),返回到所述滾動(dòng)控件中的滾動(dòng)條的邊界處,選擇到相應(yīng)內(nèi)容。在返回到所述滾動(dòng)控件中的滾動(dòng)條邊界的過(guò)程可以播放動(dòng)畫(huà)或圖片?;蛘?,若在滾動(dòng)條到達(dá)邊界時(shí),若所述滾動(dòng)控件中的滾動(dòng)條到達(dá)邊界,則在所述逐漸遞減位移量不為O時(shí),逐漸顯示空白,在所述位移量減小為O時(shí),返回到所述滾動(dòng)控件中的滾動(dòng)條的邊界處,選擇到相應(yīng)內(nèi)容。例如縱坐標(biāo)方向線速度初始值為5mm/ms,無(wú)橫坐標(biāo)方向線速度初始值,設(shè)定加速度為lmm/ms,由于時(shí)間均為單位時(shí)間故可忽略時(shí)間單位,則最初的位移量為5-1 = 4mm,也就是調(diào)整滾動(dòng)控件中滾動(dòng)條滾動(dòng)4mm,但此時(shí)滾動(dòng)條橫坐標(biāo)相應(yīng)內(nèi)容只剩下3mm,那么在滾動(dòng)條到達(dá)邊界位置后根據(jù)逐漸遞減的位移量,逐漸顯示空白,直到所述位移量減少為O時(shí),返回到所述滾動(dòng)控件中的滾動(dòng)條的邊界處,選擇到相應(yīng)內(nèi)容。在返回到所述滾動(dòng)控件中的滾動(dòng)條邊界的過(guò)程可以播放動(dòng)畫(huà)或圖片。此時(shí)就達(dá)到了一種彈性效果,即滾動(dòng)條到達(dá)邊界時(shí),若手指繼續(xù)向邊界拖動(dòng),則內(nèi)容移動(dòng)距離和手指移動(dòng)距離不成正比,而是呈現(xiàn)類(lèi)似彈簧的拉力效果,具體為手指移動(dòng)距離越大,內(nèi)容移動(dòng)時(shí)受到的阻力就越小,并且有一個(gè)內(nèi)容移動(dòng)的最大值,即無(wú)論手指移動(dòng)多遠(yuǎn),內(nèi)容移動(dòng)的距離只能無(wú)限接近此最大值,而不能達(dá)到或超過(guò)此最大值。具體地,現(xiàn)有的帶有滾動(dòng)條的控件都是通過(guò)krolIViewer (滾動(dòng)事件)為基礎(chǔ)控件來(lái)實(shí)現(xiàn)滾動(dòng)功能的(如ListBox或RichEditBox),只要控制krollViewer的滾動(dòng)行為,點(diǎn)擊物的操作即可應(yīng)用到其他帶滾動(dòng)條的控件,通常都是通過(guò)訪問(wèn)krollViewer的 HorzontalOffset (水平分量)和VerticalOffset (垂直分量)屬性得到水平滾動(dòng)條的位置和豎直滾動(dòng)條的位置,進(jìn)一步以豎直分量的移動(dòng)為例,判斷滾動(dòng)條到達(dá)邊界的過(guò)程可以包括double οIdVerticalOffset = this. _scrollViewer. VerticalOffset ;double ρ = oldVerticalOffset-y ;若ρ小于0,則滾動(dòng)條到達(dá)了開(kāi)始位置的邊界處;若ρ大于scrollViewer. krollzbleHeight (即垂直方向的最大位移),則滾動(dòng)條到達(dá)了結(jié)束位置的邊界處。進(jìn)一步當(dāng)所述滾動(dòng)條到達(dá)邊界后,若點(diǎn)擊物繼續(xù)向邊界方向移動(dòng),則點(diǎn)擊物移動(dòng)的距離與滾動(dòng)條內(nèi)容移動(dòng)的距離(即顯示空白移動(dòng)的距離)就不在是線性關(guān)系。當(dāng)滾動(dòng)條到達(dá)左邊界時(shí)以滾動(dòng)條橫坐標(biāo)移動(dòng)內(nèi)容且點(diǎn)擊物的移動(dòng)距離P和邊界長(zhǎng)度Xmax之差 (P-Xmax) (mm)大于O為例,此時(shí)(P-Xmax) (mm)與內(nèi)容移動(dòng)的距離X (mm)之間的關(guān)系如圖2(a) 所示,具體地,X = aX {1-a/[a+(P-Xmax) ]},其中a為彈性最大值,可根據(jù)用戶(hù)操作習(xí)慣或使用經(jīng)驗(yàn)確定,本例中設(shè)定a = 20mm ;或者當(dāng)滾動(dòng)條到達(dá)左邊界時(shí),以滾動(dòng)條橫坐標(biāo)移動(dòng)內(nèi)容且點(diǎn)擊物的移動(dòng)距離P小于O為例,此時(shí)P(mm)與與內(nèi)容移動(dòng)的距離X(mm)之間的關(guān)系如圖2(b)所示,具體地,X = aX [-l+a/(a-P)],其中a為彈性最大值,可根據(jù)用戶(hù)操作習(xí)慣或使用經(jīng)驗(yàn)確定,本例中設(shè)定a = 20mm。上述裝置中包含的各模塊的處理功能的具體實(shí)現(xiàn)方式在之前的方法實(shí)施例中已經(jīng)描述,在此不再重復(fù)描述。本發(fā)明實(shí)施例通過(guò)點(diǎn)擊物抬起前后對(duì)應(yīng)的位移獲得相應(yīng)的線速度初始值,并根據(jù)所述初始值對(duì)滾動(dòng)條進(jìn)行滾動(dòng)操作從而選擇到相應(yīng)的內(nèi)容,保證了用戶(hù)在到達(dá)觸摸屏的邊緣或鼠標(biāo)沒(méi)有操作空間時(shí)仍能選擇到所需要的內(nèi)容,并滿(mǎn)足了當(dāng)用戶(hù)想從滾動(dòng)條第1條選擇滾動(dòng)條第50條的內(nèi)容時(shí),通過(guò)點(diǎn)擊物快速的移動(dòng)獲得較大的線速度初始值,從而可以快速的到達(dá)用戶(hù)所需的內(nèi)容,解決了當(dāng)滾動(dòng)條內(nèi)容較多時(shí),用戶(hù)必須一個(gè)一個(gè)選擇的麻煩,可以通過(guò)手指或鼠標(biāo)的迅速移動(dòng)從而獲得較大的線速度初始值完成滾動(dòng)條內(nèi)容的快速移動(dòng)的慣性效果,方便了用戶(hù),并且通過(guò)到達(dá)邊界時(shí)顯示空白以提示用戶(hù)已到滾動(dòng)條邊界,當(dāng)位移量為0時(shí)或點(diǎn)擊物抬起時(shí)又返回到滾動(dòng)條的邊界內(nèi)容處的彈性效果,提高了用戶(hù)的體驗(yàn)感。以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此, 任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換, 都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求書(shū)的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種基于滾動(dòng)控件實(shí)現(xiàn)內(nèi)容選擇的方法,其特征在于,包括記錄點(diǎn)擊物的位置及對(duì)應(yīng)的時(shí)間;若根據(jù)所述點(diǎn)擊物抬起時(shí)的位置與所述記錄的最后時(shí)間對(duì)應(yīng)的位置得到的線速度初始值不為0,則根據(jù)所述線速度的初始值獲得相應(yīng)的位移量,并根據(jù)所述位移量調(diào)整滾動(dòng)控件,直到所述位移量為0選擇到相應(yīng)內(nèi)容。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述記錄點(diǎn)擊物的位置及對(duì)應(yīng)的時(shí)間包括設(shè)定時(shí)間間隔,每隔所述時(shí)間間隔記錄點(diǎn)擊物的位置及對(duì)應(yīng)的時(shí)間。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述點(diǎn)擊物抬起時(shí)的位置與所述記錄的最后時(shí)間對(duì)應(yīng)的位置得到線速度初始值的過(guò)程包括若點(diǎn)擊物抬起時(shí)的位置為(χη,γη)對(duì)應(yīng)時(shí)間為T(mén)n,記錄的最后時(shí)間為T(mén)lri對(duì)應(yīng)的位置為 (Xlri,Ylri),則線速度的初始值為(IXn-Xlri I,IYn-Yn^11)/(Tn-Tlri)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述線速度的初始值獲得相應(yīng)的位移量的過(guò)程包括預(yù)先設(shè)定加速度,根據(jù)所述預(yù)先設(shè)定的加速度獲得逐漸遞減的位移量。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括若所述滾動(dòng)控件中的滾動(dòng)條到達(dá)邊界,則在所述位移量為0時(shí),返回到所述滾動(dòng)控件中的滾動(dòng)條的邊界處,選擇到相應(yīng)內(nèi)容;或者,若所述滾動(dòng)控件中的滾動(dòng)條到達(dá)邊界,則根據(jù)逐漸遞減的位移量,逐漸顯示空白,在所述位移量減小為0時(shí),返回到所述滾動(dòng)控件中的滾動(dòng)條的邊界處,選擇到相應(yīng)內(nèi)容。
6.一種基于滾動(dòng)控件實(shí)現(xiàn)內(nèi)容選擇的裝置,其特征在于,包括記錄模塊,用于記錄點(diǎn)擊物的位置及對(duì)應(yīng)的時(shí)間;線速度獲取模塊,用于根據(jù)所述點(diǎn)擊物抬起時(shí)的位置與所述記錄的最后時(shí)間對(duì)應(yīng)的位置獲得的線速度初始值;判斷模塊,用于判斷所述線速度獲取模塊獲得的所述線速度初始值是否為0,若是,直接選擇到相應(yīng)內(nèi)容;若否,則執(zhí)行位移量獲取模塊;位移量獲取模塊,用于根據(jù)所述線速度的初始值獲得相應(yīng)的位移量;調(diào)整選擇模塊,用于根據(jù)所述位移量獲取模塊獲得的位移量調(diào)整滾動(dòng)控件,直到所述位移量為0選擇到相應(yīng)內(nèi)容。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述記錄模塊包括定時(shí)子模塊和記錄子模塊所述定時(shí)模塊,用于設(shè)定時(shí)間間隔;所述記錄子模塊,用于每隔所述定時(shí)模塊設(shè)定的所述時(shí)間間隔記錄點(diǎn)擊物的位置及對(duì)應(yīng)的時(shí)間。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述線速度初始值獲取模塊具體獲取的過(guò)程包括若點(diǎn)擊物抬起時(shí)的位置為(Xn,Yn)對(duì)應(yīng)時(shí)間為T(mén)n,記錄的最后時(shí)間為T(mén)lri對(duì)應(yīng)的位置為(Xlri,Ylri),則線速度的初始值為(IXn-Xn-J, IYn-Yn-JVCTn-H
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述位移量獲取模塊具體獲得獲取的過(guò)程包括預(yù)先設(shè)定加速度,根據(jù)所述預(yù)先設(shè)定的加速度獲得逐漸遞減的位移量。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,還包括邊界選擇模塊,用于若所述滾動(dòng)控件中的滾動(dòng)條到達(dá)邊界,則在所述位移量為0時(shí),返回到所述滾動(dòng)控件中的滾動(dòng)條的邊界處,選擇到相應(yīng)內(nèi)容; 或者,邊界選擇模塊,用于若所述滾動(dòng)控件中的滾動(dòng)條到達(dá)邊界,則根據(jù)逐漸遞減的位移量, 逐漸顯示空白,在所述位移量減小為0時(shí),返回到所述滾動(dòng)控件中的滾動(dòng)條的邊界處,選擇到相應(yīng)內(nèi)容。
全文摘要
一種基于滾動(dòng)控件實(shí)現(xiàn)內(nèi)容選擇的方法及裝置,首先,記錄點(diǎn)擊物的位置及對(duì)應(yīng)的時(shí)間;然后,若根據(jù)所述點(diǎn)擊物抬起時(shí)的位置與所述記錄的最后時(shí)間對(duì)應(yīng)的位置得到的線速度初始值不為0,則根據(jù)所述線速度的初始值獲得位移量,并根據(jù)所述位移量調(diào)整滾動(dòng)控件,直到所述位移量為0選擇到相應(yīng)內(nèi)容。本發(fā)明將通過(guò)點(diǎn)擊物抬起前后時(shí)間對(duì)應(yīng)的位移獲得相應(yīng)的線速度初始值,并根據(jù)所述初始值對(duì)滾動(dòng)控件繼續(xù)進(jìn)行操作并選擇到相應(yīng)內(nèi)容,保證了用戶(hù)在到達(dá)觸摸屏的邊緣或鼠標(biāo)沒(méi)有操作空間時(shí)仍能選擇到所需要的內(nèi)容,方便了用戶(hù),提高了體驗(yàn)感。
文檔編號(hào)G06F3/048GK102314282SQ201010215100
公開(kāi)日2012年1月11日 申請(qǐng)日期2010年6月29日 優(yōu)先權(quán)日2010年6月29日
發(fā)明者任旻, 謝偉文, 高舜東 申請(qǐng)人:騰訊科技(深圳)有限公司