專利名稱:手持裝置及利用其進行項目拖動控制的方法
技術(shù)領域:
本發(fā)明涉及一種電子裝置及方法,尤其涉及一種手持裝置及利用其進行項目拖動控制的方法。
背景技術(shù):
目前手機的操作系統(tǒng)比較流行的主要有Android系統(tǒng)和iPhone系統(tǒng)兩種。其中, 在Android系統(tǒng)中,圖標不能自動排列,放置位置比較隨意,只要是空位置都可以放,可以隨心所欲的擺放圖標,但如果要騰出一定空位置,需要一個一個移動原有圖標。在iPhone 系統(tǒng)中,圖標雖然可以自動排列,但沒有對widget (微件,有別于一般圖標,比圖標占有的區(qū)域大)的自動排列,即沒有實現(xiàn)widget和圖標的混排。
發(fā)明內(nèi)容
鑒于以上內(nèi)容,有必要提供一種項目拖動控制方法,其可實現(xiàn)widget和圖標的混排。在一個實施例中,該方法包括如下步驟(a)判斷手持裝置的觸控式屏幕上的一個項目在拖動后位置是否發(fā)生變動,所述項目包括widget和圖標;(b)如果該項目在拖動后位置發(fā)生變動,則更新當前屏幕項目列表,然后執(zhí)行步驟 (c),如果該項目在拖動后位置沒有發(fā)生變動,則直接執(zhí)行步驟(c);(c)判斷拖動項目有沒有被放下,如果該拖動項目被放下,則在觸控式屏幕上顯示重新排列后的項目,如果該拖動項目沒有被放下,則執(zhí)行步驟(d);(d)計算該拖動項目的當前位置;(e)如果該拖動項目的位置沒有變動,或該拖動項目蓋在widget上面,則返回步驟(c),如果該拖動項目的位置發(fā)生變動,且該拖動項目沒有蓋在widget上面,則執(zhí)行步驟 (f);(f)從當前屏幕項目列表中,依次獲取一個項目;(g)如果該項目合法,則確定該項目移動的目標位置,將該合法的項目移動到確定的目標位置;及(h)如果該項目不合法,則返回步驟(f),轉(zhuǎn)到下一個項目,直到所有項目執(zhí)行完畢。前述方法可以由手持裝置執(zhí)行,其中該手持裝置具有附帶了圖形用戶界面(GUI) 的觸控式屏幕、一個或多個處理器、存儲器以及保存在存儲器中用于執(zhí)行這些方法的一個或多個模塊、程序或指令集。在某些實施例中,該手持裝置提供了包括無線通信在內(nèi)的多種功能。用于執(zhí)行前述方法的指令可以包含在被配置成由一個或多個處理器執(zhí)行的計算機程序產(chǎn)品中。
相較于現(xiàn)有技術(shù),所述的手持裝置及利用其進行項目拖動控制的方法,在Android 系統(tǒng)的基礎上實現(xiàn)了 widget和圖標的混排。相對于原來實現(xiàn),圖標可以自動排列,widget 也可以擠走圖標。如果用戶移動widget或者圖標到其它屏幕,那么其它屏幕在有空間放下該widget或者圖標的情況下,也會自動排列。本發(fā)明在原有圖標排列基礎上增加widget和圖標的混排,避免了 widget與圖標排列無規(guī)則,使得用戶界面更美觀,不需要用戶一個一個的去移動圖標來騰出空位置創(chuàng)建 widget,使得操作更方便。
圖1是本發(fā)明手持裝置較佳實施例的結(jié)構(gòu)方框圖。圖2是利用手持裝置進行項目拖動控制的方法的較佳實施例的流程圖。主要元件符號說明
手持裝置2存儲器21觸控式屏幕22處理器23項目拖動控制系統(tǒng)210
具體實施例方式本發(fā)明涉及到一個自動排列的概念,所以先解釋一下本發(fā)明自動排列的特點。本發(fā)明自動排列的概念我們可以把一個屏幕分成NXN的網(wǎng)格,也就是說有N行, N列,格子的序號從0到NXN-1。一般圖標占用1X1個格子,widget (微件)占用的區(qū)域大于1X1小于等于NXN。假設一個圖標的位置的索引為k,那么0到k-Ι都不能為空(被占用的位置為非空,沒有占用則為空)。假設一個widget的長寬為iXj,左上角所在位置為第m行第η列,那么該widget所在區(qū)域(行范圍為m到m+i-1,列范圍為η到η+j-l所產(chǎn)生的交集)是不能再放其他圖標或者widget,除非用戶把該widget移走。如圖1所示,是本發(fā)明手持裝置較佳實施例的結(jié)構(gòu)方框圖。在本實施例中,該手持裝置2包括存儲器21、觸控式屏幕22和處理器23。其中,所述項目拖動控制系統(tǒng)210 存儲于存儲器21中,用于對觸控式屏幕22上的widget和圖標進行混排,具體過程參見圖 2的描述。在本實施例中,所述手持裝置2包括,但不限于,手機或PDA (Personal Digital Assistant,個人數(shù)字助理)等具有資料處理功能的電子設備。在本實施例中,所述項目拖動控制系統(tǒng)210可以被分割成一個或多個模塊,所述一個或多個模塊被配置成由一個或多個處理器(本實施例為一個處理器2 執(zhí)行,以完成本發(fā)明。本發(fā)明所稱的模塊是完成一特定功能的計算機程序段,比程序更適合于描述軟件在計算機中的執(zhí)行過程。
所述觸控式屏幕22用于對通過指示筆或手指而在一個或多個接觸點進行的物理接觸做出響應。如圖2所示,是利用手持裝置進行項目拖動控制的方法的較佳實施例的流程圖。步驟S10,判斷觸控式屏幕22上的一個項目在拖動后位置是否發(fā)生變動。在本實施例中,如果一個項目在拖動后位置發(fā)生過變動,則需要重新計算當前屏幕項目列表,執(zhí)行步驟Sll ;如果一個項目在拖動后位置沒有發(fā)生過變動,則不需要重新計算當前屏幕項目列表,執(zhí)行步驟S12。其中,項目位置的初始狀態(tài)為false(沒有發(fā)生變動)。在本實施例中, 所述項目包括widget和圖標兩種類型。在其它實施例中,還可以設定為如果一個項目的位置變化值小于預設值(如1毫米),則判定該項目的位置沒有發(fā)生變動;如果一個項目的位置變化值大于或等于該預設值,則判定該項目的位置發(fā)生過變動。步驟S11,根據(jù)該項目的位置變更,更新當前屏幕項目列表。在本實施例中,該當前屏幕項目列表用于存儲每個項目的位置信息(如坐標值)和屬性(如0和1)等。其中,項目的屬性用于記錄該項目是Widget還是圖標。例如,用1記錄該項目為widget,用0記錄該項目為圖標。例如,一個項目從A位置移動至B位置,則將該項目在當前屏幕項目列表中的位置信息更新為B位置。步驟S12,判斷用戶是否放下拖動項目。如果用戶放下拖動項目,則在觸控式屏幕 22上顯示重新排列后的項目,流程結(jié)束;如果用戶沒有放下拖動項目,則執(zhí)行步驟S13。步驟S13,計算該拖動項目的當前位置,即該拖動項目的新位置。在本實施例中,計算該拖動項目的當前位置是指計算該拖動項目的中心點坐標值。在其它實施例中,計算該拖動項目的當前位置后還進一步包括根據(jù)該拖動項目的當前位置進行邊界處理。具體而言,如果該拖動項目的當前位置超出當前屏幕的邊界,則調(diào)整該拖動項目的當前位置,使該拖動項目的當前位置靠近當前屏幕的邊界。步驟S14,判斷是否需要重新排列當前屏幕項目列表中的項目。在本實施例中, widget可以擠動圖標,但圖標不能擠動widget。具體而言,如果該拖動項目的位置沒有變動,或該拖動項目蓋在widget上面,則不需要重新排列當前屏幕項目列表中的項目,則返回步驟S12 ;如果該拖動項目的位置發(fā)生變動,且該拖動項目沒有蓋在widget上面,則需要重新排列當前屏幕項目列表中的項目,執(zhí)行步驟S15。步驟S15,從當前屏幕項目列表中,依次獲取一個項目。步驟S16,判斷該項目是否合法。如果該項目合法,則執(zhí)行步驟S17 ;如果該項目不合法,則轉(zhuǎn)到步驟S19。當還有項目沒有執(zhí)行完畢時,再返回步驟S15,轉(zhuǎn)到下一個項目;如果所有項目都執(zhí)行完畢,則返回步驟S10。其中,判斷該項目是否合法的規(guī)則為從當前屏幕第一個項目開始移動,如果該項目不是空位置,即該位置存放了 widget或圖標,不是該拖動項目且不是widget,則為合
法移動項目;反之,如果該項目是空位置,或是該拖動項目或是widget,則為不合法移動項目。步驟S17,確定該項目移動的目標位置。其中,確定該項目移動的目標位置的規(guī)則為從當前屏幕第一個位置開始尋找目標位置,如果該位置是拖動項目的原有位置,或者如果該位置存放的不是拖動項目且不是拖動項目的當前位置且該位置存放的不是widget,則為合法目標位置;如果該位置是拖動項目的當前位置,或者如果該位置存放的是widget但該widget不等于拖動項目,則為不合法目標位置,轉(zhuǎn)到下一個位置繼續(xù)尋找目標位置。另外,如果所有位置都是不合法目標位置,則轉(zhuǎn)到下一個項目。步驟S18,將該合法的項目移動到確定的目標位置,然后執(zhí)行步驟S19。在本實施例中,如果該合法項目的位置的索引和確定的目標位置的索引相等,則該合法項目不需要移動;如果該合法項目的位置的索引和確定的目標位置的索引不相等, 則將該合法項目移動到確定的目標位置。步驟S19,判斷當前屏幕項目列表中的所有項目是否執(zhí)行完畢。如果所有項目執(zhí)行完畢,則返回步驟S10;如果還有項目沒有執(zhí)行,則返回步驟S15,從當前屏幕項目列表中獲取下一個項目,直至當前屏幕項目列表中中的所有項目讀取完畢。在本實施例中,widget可以擠動圖標,但圖標不能擠動widget,也就是說widget 只能由用戶操作移動,而不能自動被排列,而圖標即可以由用戶移動,也可以是自動被移動。在其它實施例中,也可以設定widget可以擠動圖標,且圖標也能擠動widget,這種變化對本領域技術(shù)人員來說可以輕易完成,不需要付出創(chuàng)造性地勞動。本實施例是在Android系統(tǒng)的手持裝置上實現(xiàn)了 widget和圖標的混排。在其它實施例中,也可以將本發(fā)明移植到其它系統(tǒng)(如iPhone系統(tǒng))的手持裝置上,這種變化對本領域技術(shù)人員來說可以輕易完成,不需要付出創(chuàng)造性地勞動。最后應說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實施例對本發(fā)明進行了詳細說明,本領域的普通技術(shù)人員應當理解,可以對本發(fā)明的技術(shù)方案進行修改或等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種項目拖動控制方法,其特征在于,該方法包括如下步驟(a)判斷手持裝置的觸控式屏幕上的一個項目在拖動后位置是否發(fā)生變動,所述項目包括widget禾口圖標;(b)如果該項目在拖動后位置發(fā)生變動,則更新當前屏幕項目列表,然后執(zhí)行步驟 (c),如果該項目在拖動后位置沒有發(fā)生變動,則直接執(zhí)行步驟(c);(c)判斷拖動項目有沒有被放下,如果該拖動項目被放下,則在觸控式屏幕上顯示重新排列后的項目,如果該拖動項目沒有被放下,則執(zhí)行步驟(d);(d)計算該拖動項目的當前位置;(e)如果該拖動項目的位置沒有變動,或該拖動項目蓋在widget上面,則返回步驟 (c),如果該拖動項目的位置發(fā)生變動,且該拖動項目沒有蓋在widget上面,則執(zhí)行步驟 (f);(f)從當前屏幕項目列表中,依次獲取一個項目;(g)如果該項目合法,則確定該項目移動的目標位置,將該合法的項目移動到確定的目標位置;及(h)如果該項目不合法,則返回步驟(f),轉(zhuǎn)到下一個項目,直到所有項目執(zhí)行完畢。
2.如權(quán)利要求1所述的項目拖動控制方法,其特征在于,該方法還包括步驟如果該拖動項目的當前位置超出當前屏幕的邊界,則調(diào)整該拖動項目的當前位置,使該拖動項目的當前位置靠近當前屏幕的邊界。
3.如權(quán)利要求1所述的項目拖動控制方法,其特征在于,判斷該項目是否合法的步驟包括從當前屏幕第一個項目開始移動,如果該項目不是空位置,不是該拖動項目且不是 widget,則為合法移動項目;及如果該項目是空位置,或是該拖動項目或是widget,則為不合法移動項目。
4.如權(quán)利要求1所述的項目拖動控制方法,其特征在于,所述確定該項目移動的目標位置的步驟包括從當前屏幕第一個位置開始尋找目標位置,如果該位置是拖動項目的原有位置,或者如果該位置存放的不是拖動項目且不是拖動項目的當前位置且該位置存放的不是widget, 則為合法目標位置;及如果該位置是拖動項目的當前位置,或者如果該位置存放的是widget但該widget不等于拖動項目,則為不合法目標位置。
5.如權(quán)利要求1所述的項目拖動控制方法,其特征在于,所述將該合法的項目移動到確定的目標位置的步驟包括如果該合法項目的位置和確定的目標位置的索引相等,則該合法項目不需要移動;及如果該合法項目的位置和確定的目標位置的索引不相等,則將該合法項目移動到確定的目標位置。
6.一種手持裝置,包括觸控式屏幕;存儲器;一個或多個處理器;以及一個或多個模塊,所述一個或多個模塊被存儲在所述存儲器中并被配置成由所述一個或多個處理器執(zhí)行,所述一個或多個模塊包括用于執(zhí)行以下步驟的指令(a)判斷手持裝置的觸控式屏幕上的一個項目在拖動后位置是否發(fā)生變動的指令,所述項目包括widget和圖標;(b)如果該項目在拖動后位置發(fā)生變動,則更新當前屏幕項目列表,然后執(zhí)行步驟(C) 的指令,如果該項目在拖動后位置沒有發(fā)生變動,則直接執(zhí)行步驟(c)的指令;(c)判斷拖動項目有沒有被放下的指令,如果該拖動項目被放下,則在觸控式屏幕上顯示重新排列后的項目,如果該拖動項目沒有被放下,則執(zhí)行步驟(d);(d)計算該拖動項目的當前位置的指令;(e)如果該拖動項目的位置沒有變動,或該拖動項目蓋在widget上面,則返回步驟(c) 的指令,如果該拖動項目的位置發(fā)生變動,且該拖動項目沒有蓋在widget上面,則執(zhí)行步驟(f)的指令;(f)從當前屏幕項目列表中,依次獲取一個項目的指令;(g)如果該項目合法,則確定該項目移動的目標位置,將該合法的項目移動到確定的目標位置的指令;及(h)如果該項目不合法,則返回步驟(f),轉(zhuǎn)到下一個項目,直到所有項目執(zhí)行完畢的指令。
7.如權(quán)利要求6所述的手持裝置,其特征在于,所述一個或多個模塊包括用于執(zhí)行以下步驟的指令如果該拖動項目的當前位置超出當前屏幕的邊界,則調(diào)整該拖動項目的當前位置,使該拖動項目的當前位置靠近當前屏幕的邊界的指令。
8.如權(quán)利要求6所述的手持裝置,其特征在于,判斷該項目是否合法的指令包括從當前屏幕第一個項目開始移動,如果該項目不是空位置,不是該拖動項目且不是widget,則判斷該項目為合法移動項目的指令;及如果該項目是空位置,或是該拖動項目或是widget,則判斷該項目為不合法移動項目的指令。
9.如權(quán)利要求6所述的手持裝置,其特征在于,所述確定該項目移動的目標位置的指令包括從當前屏幕第一個位置開始尋找目標位置,如果該位置是拖動項目的原有位置,或者如果該位置存放的不是拖動項目且不是拖動項目的當前位置且該位置存放的不是widget, 則判斷該位置為合法目標位置的指令;及如果該位置是拖動項目的當前位置,或者如果該位置存放的是widget但該widget不等于拖動項目,則判斷該位置為不合法目標位置的指令。
10.如權(quán)利要求6所述的手持裝置,其特征在于,所述將該合法的項目移動到確定的目標位置的指令包括如果該合法項目的位置和確定的目標位置的索引相等,則判斷該合法項目不需要移動的指令;及如果該合法項目的位置和確定的目標位置的索引不相等,則將該合法項目移動到確定的目標位置的指令。
全文摘要
一種手持裝置及利用其進行項目拖動控制的方法,該方法包括如下步驟當手持裝置的觸控式屏幕上的一個項目在拖動后位置發(fā)生變動,更新當前屏幕項目列表,所述項目包括widget和圖標;如果該拖動項目沒有被放下,則計算該拖動項目的當前位置;如果該拖動項目的位置發(fā)生變動,且該拖動項目沒有蓋在widget上面,則從當前屏幕項目列表中,依次獲取一個項目;如果該項目合法,則確定該項目移動的目標位置,將該合法的項目移動到確定的目標位置。利用本發(fā)明可實現(xiàn)widget和圖標的混排。
文檔編號G06F3/048GK102331898SQ20101022426
公開日2012年1月25日 申請日期2010年7月12日 優(yōu)先權(quán)日2010年7月12日
發(fā)明者王定國, 鄢素濤, 黃小軍 申請人:上海科泰世紀科技有限公司