本發(fā)明涉及移動(dòng)設(shè)備屏幕顯示技術(shù)領(lǐng)域,具體涉及一種屏幕圖像旋轉(zhuǎn)控制方法、裝置以及移動(dòng)設(shè)備。
背景技術(shù):
隨著工業(yè)電子技術(shù)的發(fā)展以及信息產(chǎn)業(yè)的不斷壯大,工業(yè)電子產(chǎn)品以及個(gè)人消費(fèi)產(chǎn)品層出不窮,而顯示器作為輸出設(shè)備也被廣泛的應(yīng)用到各種電子終端上。而一般的終端設(shè)備在用戶使用時(shí)為了能夠?qū)崿F(xiàn)多角度觀看內(nèi)容,只能將整個(gè)設(shè)備同顯示器一起進(jìn)行旋轉(zhuǎn),這樣既費(fèi)時(shí)又費(fèi)力。而目前流行的做法就是通過(guò)重力感應(yīng)器進(jìn)行調(diào)整角度,而如果對(duì)于水平放置的將無(wú)法起作用,同時(shí)該方法也需要將設(shè)備進(jìn)行移動(dòng)才可以實(shí)現(xiàn),用戶體驗(yàn)不是很好。
技術(shù)實(shí)現(xiàn)要素:
發(fā)明目的:針對(duì)現(xiàn)有技術(shù)中存在的問(wèn)題,本發(fā)明提供一種屏幕圖像旋轉(zhuǎn)控制方法、裝置以及移動(dòng)設(shè)備,可以將顯示圖像按照用戶的角度任意的設(shè)置,提高用戶的體驗(yàn)效果。
技術(shù)方案:為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明采用如下技術(shù)方案:
一種屏幕圖像旋轉(zhuǎn)控制方法,包括如下步驟:
獲取手指在屏幕雙擊的消息,以及雙擊后在屏幕上移動(dòng)的消息,并獲取手指雙擊的位置和移動(dòng)的位置;
若雙擊位置在屏幕上任意一個(gè)頂角區(qū)域,且移動(dòng)位置在屏幕邊緣,則以所點(diǎn)擊的頂角區(qū)域?qū)?yīng)頂角的坐標(biāo)點(diǎn)為參考點(diǎn),計(jì)算參考點(diǎn)與手指移動(dòng)點(diǎn)坐標(biāo)的差值,并根據(jù)差值計(jì)算旋轉(zhuǎn)后的屏幕四角對(duì)應(yīng)的坐標(biāo)點(diǎn)的坐標(biāo)值。
作為優(yōu)選,當(dāng)手指在屏幕上走完一個(gè)屏幕長(zhǎng)或?qū)捄螅允种竸傔M(jìn)過(guò)的屏幕頂角的坐標(biāo)點(diǎn)為參考點(diǎn),計(jì)算參考點(diǎn)與手指移動(dòng)點(diǎn)坐標(biāo)的差值,并根據(jù)差值計(jì)算旋轉(zhuǎn)后的屏幕四角對(duì)應(yīng)的坐標(biāo)點(diǎn)的坐標(biāo)值。
作為優(yōu)選,所述計(jì)算參考點(diǎn)與手指移動(dòng)點(diǎn)坐標(biāo)的差值,并根據(jù)差值計(jì)算旋轉(zhuǎn)后的屏幕四角對(duì)應(yīng)的坐標(biāo)點(diǎn)的坐標(biāo)值的具體方法為:
設(shè)屏幕四角坐標(biāo)分別為A(x1,y1)、B(x2,y2)、C(x3,y3)和D(x4,y4),手指沿x軸或y軸移動(dòng),手指移動(dòng)點(diǎn)的坐標(biāo)為M(x0,y0),屏幕長(zhǎng)寬比為k;
若屏幕左下頂角A(x1,y1)為參考點(diǎn),M在A右方,則計(jì)算差值a=x1-x0,移動(dòng)后的A,B,C,D依次坐標(biāo)變?yōu)?x1-a,y1),(x2,y2-a/k),(x3+a,y3),(x4,y4+a/k);
若屏幕左下頂角A(x1,y1)為參考點(diǎn),M在A上方,則計(jì)算差值b=y(tǒng)1-y0,移動(dòng)后的A,B,C,D依次坐標(biāo)變?yōu)?x1,y1-b),(x2+k*b,y2),(x3,y3+b),(x4-k*a,y4);
若屏幕右下頂角B(x2,y2)為參考點(diǎn),M在A左方,則計(jì)算差值a=x2-x0,移動(dòng)后的A,B,C,D依次坐標(biāo)變?yōu)?x1,y1+a/k),(x2-a,y2),(x3,y3-a/k),(x4+a,y4);
若屏幕右下頂角B(x2,y2)為參考點(diǎn),M在A上方,則計(jì)算差值b=y(tǒng)2-y0,移動(dòng)后的A,B,C,D依次坐標(biāo)變?yōu)?x1-k*b,y1),(x2,y2-b),(x3+k*b,y3),(x4,y4+b);
若屏幕右上頂角C(x3,y3)為參考點(diǎn),M在A左方,則計(jì)算差值a=x3-x0,移動(dòng)后的A,B,C,D依次坐標(biāo)變?yōu)?x1+a,y1),(x2,y2+a/k),(x3-a,y3),(x4,y4-a/k);
若屏幕右上頂角C(x3,y3)為參考點(diǎn),M在A下方,則計(jì)算差值b=y(tǒng)3-y0,移動(dòng)后的A,B,C,D依次坐標(biāo)變?yōu)?x1,y1+b),(x2-k*b,y2),(x3,y3-b),(x4+k*b,y4);
若屏幕左上頂角D(x4,y4)為參考點(diǎn),M在A右方,則計(jì)算差值a=x4-x0,移動(dòng)后的A,B,C,D依次坐標(biāo)變?yōu)?x1,y1-a/k),(x2+a,y2),(x3,y3+a/k),(x4-a,y4);
若屏幕左上頂角D(x4,y4)為參考點(diǎn),M在A下方,則計(jì)算差值b=y(tǒng)4-y0,移動(dòng)后的A,B,C,D依次坐標(biāo)變?yōu)?x1+k*b,y1),(x2,y2+b),(x3-k*b,y3),(x4,y4-b)。
一種屏幕圖像旋轉(zhuǎn)控制裝置,包括:
獲取單元,用于獲取手指在屏幕雙擊的消息,以及雙擊后在屏幕上移動(dòng)的消息,并獲取手指雙擊的位置和移動(dòng)的位置;
判斷單元,用于判斷雙擊位置是否在屏幕上任意一個(gè)頂角區(qū)域,以及移動(dòng)位置是否在屏幕邊緣;
以及,旋轉(zhuǎn)單元,用于當(dāng)在屏幕頂角區(qū)域雙擊并沿屏幕邊緣移動(dòng)時(shí),以所點(diǎn)擊的頂角區(qū)域?qū)?yīng)頂角的坐標(biāo)點(diǎn)為參考點(diǎn),計(jì)算參考點(diǎn)與手指移動(dòng)點(diǎn)坐標(biāo)的差值,并根據(jù)差值計(jì)算旋轉(zhuǎn)后的屏幕四角對(duì)應(yīng)的坐標(biāo)點(diǎn)的坐標(biāo)值。
作為優(yōu)選,還包括參考點(diǎn)預(yù)測(cè)單元,用于根據(jù)當(dāng)前參考點(diǎn)與手指移動(dòng)坐標(biāo)點(diǎn)坐標(biāo)的差值預(yù)測(cè)走完一個(gè)屏幕長(zhǎng)或?qū)捄笙乱粋€(gè)參考點(diǎn)。
一種移動(dòng)設(shè)備,包括:觸摸電容檢測(cè)模塊,觸摸屏驅(qū)動(dòng)模塊,微處理器模塊,UI應(yīng)用界面模塊,旋轉(zhuǎn)控制模塊以及顯示模塊;所述微處理器模塊用于控制UI應(yīng)用界面圖像旋轉(zhuǎn);所述觸摸電容檢測(cè)模塊用于檢測(cè)手指在屏幕邊緣引起的異常觸發(fā);所述觸摸屏驅(qū)動(dòng)模塊用于將檢測(cè)到的異常觸發(fā)處理成坐標(biāo)信息并發(fā)送給微處理器模塊;所述微處理器模塊用于將從觸摸屏驅(qū)動(dòng)模塊得到的坐標(biāo)程序發(fā)送給旋轉(zhuǎn)控制模塊,同時(shí)通知UI應(yīng)用界面模塊讀取旋轉(zhuǎn)控制模塊處理后的信息;所述旋轉(zhuǎn)控制模塊用于處理旋轉(zhuǎn)方向以及UI應(yīng)用界面所需要的圖像尺寸信息;所述UI應(yīng)用界面模塊用于根據(jù)圖像尺寸信息繪制圖像;所述顯示模塊用于顯示旋轉(zhuǎn)圖像。
作為優(yōu)選,所述旋轉(zhuǎn)控制模塊包括:獲取單元,用于獲取手指在屏幕雙擊的消息,以及雙擊后在屏幕上移動(dòng)的消息,并獲取手指雙擊的位置和移動(dòng)的位置;判斷單元,用于判斷雙擊位置是否在屏幕上任意一個(gè)頂角區(qū)域,以及移動(dòng)位置是否在屏幕邊緣;旋轉(zhuǎn)單元,用于當(dāng)在屏幕頂角區(qū)域雙擊并沿屏幕邊緣移動(dòng)時(shí),以所點(diǎn)擊的頂角區(qū)域?qū)?yīng)頂角的坐標(biāo)點(diǎn)為參考點(diǎn),計(jì)算參考點(diǎn)與手指移動(dòng)點(diǎn)坐標(biāo)的差值,并根據(jù)差值計(jì)算旋轉(zhuǎn)后的屏幕四角對(duì)應(yīng)的坐標(biāo)點(diǎn)的坐標(biāo)值;以及預(yù)測(cè)單元,用于根據(jù)當(dāng)前參考點(diǎn)與手指移動(dòng)坐標(biāo)點(diǎn)坐標(biāo)的差值預(yù)測(cè)走完一個(gè)屏幕長(zhǎng)或?qū)捄笙乱粋€(gè)參考點(diǎn)。
有益效果:本發(fā)明通過(guò)雙擊屏幕的四角去觸發(fā)旋轉(zhuǎn)功能,并根據(jù)手指在屏幕邊緣滑動(dòng)的消息,雙擊的圖像頂角會(huì)跟隨手指的移動(dòng)而移動(dòng),從而調(diào)動(dòng)這個(gè)圖像的旋轉(zhuǎn)。與現(xiàn)有技術(shù)相比,本發(fā)明可以將顯示圖像按照用戶的角度任意的設(shè)置,提高用戶的體驗(yàn)效果。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例的方法流程圖。
圖2為本發(fā)明實(shí)施例方法中屏幕四角坐標(biāo)示意圖。
圖3為本發(fā)明實(shí)施例方法中屏幕旋轉(zhuǎn)控制流程示意圖。
圖4為本發(fā)明實(shí)施例的裝置結(jié)構(gòu)示意圖。
圖5為本發(fā)明實(shí)施例的移動(dòng)設(shè)備結(jié)構(gòu)框圖。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例,進(jìn)一步闡明本發(fā)明,應(yīng)理解這些實(shí)施例僅用于說(shuō)明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對(duì)本發(fā)明的各種等價(jià)形式的修改均落于本申請(qǐng)所附權(quán)利要求所限定的范圍。
如圖1所示,本發(fā)明實(shí)施例公開(kāi)的一種屏幕圖像旋轉(zhuǎn)控制方法,包括:獲取手指在屏幕雙擊的消息,以及雙擊后在屏幕上移動(dòng)的消息,并獲取手指雙擊的位置和移動(dòng)的位置;若雙擊位置在屏幕上任意一個(gè)頂角區(qū)域,且移動(dòng)位置在屏幕邊緣,則以所點(diǎn)擊的頂角區(qū)域?qū)?yīng)頂角的坐標(biāo)點(diǎn)為參考點(diǎn),計(jì)算參考點(diǎn)與手指移動(dòng)點(diǎn)坐標(biāo)的差值,并根據(jù)差值計(jì)算旋轉(zhuǎn)后的屏幕四角對(duì)應(yīng)的坐標(biāo)點(diǎn)的坐標(biāo)值。
本實(shí)施例方法首先通過(guò)雙擊屏幕的四角去觸發(fā)旋轉(zhuǎn)功能,當(dāng)手指在右側(cè)邊緣滑動(dòng)時(shí),雙擊的圖像右頂角會(huì)跟隨手指的移動(dòng)而移動(dòng),從而調(diào)動(dòng)這個(gè)圖像的旋轉(zhuǎn),當(dāng)手指在左側(cè)邊緣滑動(dòng)時(shí),雙擊的圖像左頂角會(huì)跟隨手指的移動(dòng)而移動(dòng),從而調(diào)動(dòng)這個(gè)圖像的旋轉(zhuǎn)。為了使圖像跟隨手指在屏幕四周移動(dòng)而移動(dòng),當(dāng)手指在屏幕上走完一個(gè)屏幕長(zhǎng)或?qū)捄螅詣?dòng)進(jìn)行下一個(gè)參考點(diǎn)的預(yù)測(cè),以手指剛進(jìn)過(guò)的屏幕頂角的坐標(biāo)點(diǎn)為參考點(diǎn),計(jì)算新的參考點(diǎn)與手指移動(dòng)點(diǎn)坐標(biāo)的差值,并根據(jù)差值計(jì)算旋轉(zhuǎn)后的屏幕四角對(duì)應(yīng)的坐標(biāo)點(diǎn)的坐標(biāo)值,實(shí)現(xiàn)圖像持續(xù)旋轉(zhuǎn)。
如圖2所示,假設(shè)屏幕四角坐標(biāo)分別為A(x1,y1)、B(x2,y2)、C(x3,y3)、D(x4,y4),手指移動(dòng)點(diǎn)的坐標(biāo)(x0,y0),屏幕長(zhǎng)寬比為k。當(dāng)手指點(diǎn)(x0,y0)移動(dòng)時(shí)只有一個(gè)坐標(biāo)值改變。屏幕旋轉(zhuǎn)的具體控制算法如圖3,圖中,resp(x,y)為點(diǎn)擊屏幕四角的參考點(diǎn),a和b值是參考點(diǎn)和手指移動(dòng)坐標(biāo)點(diǎn)的差值,參考點(diǎn)預(yù)測(cè)模塊會(huì)根據(jù)a或b預(yù)測(cè)走完一個(gè)屏幕長(zhǎng)或?qū)捄笙乱粋€(gè)參考點(diǎn)。比如A到B,參考點(diǎn)預(yù)測(cè)模塊會(huì)根據(jù)a或b的值測(cè)算出下個(gè)點(diǎn)B,當(dāng)手指劃到B點(diǎn)或者劃到BC之間,會(huì)自動(dòng)將上一個(gè)參考點(diǎn)用B值坐標(biāo)替代。Input為輸入端口主要輸入手觸點(diǎn),屏幕四角坐標(biāo)以及屏幕長(zhǎng)寬比例。Output輸出端口主要輸出計(jì)算出來(lái)的四個(gè)移動(dòng)后到坐標(biāo)點(diǎn)。
坐標(biāo)旋轉(zhuǎn)算法模塊具體實(shí)現(xiàn)方法:
若點(diǎn)擊屏幕左下頂角A(x1,y1)
①x1-x0=a且a不為0(在x軸上移動(dòng))則移動(dòng)后的A,B,C,D依次坐標(biāo)變?yōu)?x1-a,y1),(x2,y2-a/k),(x3+a,y3),(x4,y4+a/k)
②y1-y0=b且b不為0(在y軸上移動(dòng))則移動(dòng)后的A,B,C,D依次坐標(biāo)變?yōu)?x1,y1-b),(x2+k*b,y2),(x3,y3+b),(x4-k*a,y4)
若點(diǎn)擊屏幕右下頂角B(x2,y2)
①x2-x0=a且a不為0(在x軸上移動(dòng))則移動(dòng)后的A,B,C,D依次坐標(biāo)變?yōu)?x1,y1+a/k),(x2-a,y2),(x3,y3-a/k),(x4+a,y4)
②y2-y0=b且b不為0(在y軸上移動(dòng))則移動(dòng)后的A,B,C,D依次坐標(biāo)變?yōu)?x1-k*b,y1),(x2,y2-b),(x3+k*b,y3),(x4,y4+b)
若點(diǎn)擊屏幕右上頂角C(x3,y3)
①x3-x0=a且a不為0(在x軸上移動(dòng))則移動(dòng)后的A,B,C,D依次坐標(biāo)變?yōu)?x1+a,y1),(x2,y2+a/k),(x3-a,y3),(x4,y4-a/k)
②y3-y0=b且b不為0(在y軸上移動(dòng))則移動(dòng)后的A,B,C,D依次坐標(biāo)變?yōu)?x1,y1+b),(x2-k*b,y2),(x3,y3-b),(x4+k*b,y4)
若點(diǎn)擊屏幕左上頂角D(x4,y4)
①x4-x0=a且a不為0(在x軸上移動(dòng))則移動(dòng)后的A,B,C,D依次坐標(biāo)變?yōu)?x1,y1-a/k),(x2+a,y2),(x3,y3+a/k),(x4-a,y4)
②y4-y0=b且b不為0(在y軸上移動(dòng))則移動(dòng)后的A,B,C,D依次坐標(biāo)變?yōu)?x1+k*b,y1),(x2,y2+b),(x3-k*b,y3),(x4,y4-b)
如圖4所示,本發(fā)明實(shí)施公開(kāi)的一種屏幕圖像旋轉(zhuǎn)控制裝置,包括:獲取單元,用于獲取手指在屏幕雙擊的消息,以及雙擊后在屏幕上移動(dòng)的消息,并獲取手指雙擊的位置和移動(dòng)的位置;判斷單元,用于判斷雙擊位置是否在屏幕上任意一個(gè)頂角區(qū)域,以及移動(dòng)位置是否在屏幕邊緣;旋轉(zhuǎn)單元,用于當(dāng)在屏幕頂角區(qū)域雙擊并沿屏幕邊緣移動(dòng)時(shí),以所點(diǎn)擊的頂角區(qū)域?qū)?yīng)頂角的坐標(biāo)點(diǎn)為參考點(diǎn),計(jì)算參考點(diǎn)與手指移動(dòng)點(diǎn)坐標(biāo)的差值,并根據(jù)差值計(jì)算旋轉(zhuǎn)后的屏幕四角對(duì)應(yīng)的坐標(biāo)點(diǎn)的坐標(biāo)值;以及參考點(diǎn)預(yù)測(cè)單元,用于根據(jù)當(dāng)前參考點(diǎn)與手指移動(dòng)坐標(biāo)點(diǎn)坐標(biāo)的差值預(yù)測(cè)走完一個(gè)屏幕長(zhǎng)或?qū)捄笙乱粋€(gè)參考點(diǎn)。
如圖5所示,本發(fā)明實(shí)施例公開(kāi)的支持屏幕旋轉(zhuǎn)的移動(dòng)設(shè)備主要包括六個(gè)模塊,分別為觸摸電容檢測(cè)模塊,觸摸屏驅(qū)動(dòng)模塊,微處理器模塊,UI應(yīng)用界面模塊,旋轉(zhuǎn)控制模塊以及顯示模塊。本實(shí)施例的移動(dòng)設(shè)備可以通過(guò)微處理器模塊來(lái)控制UI應(yīng)用界面圖像旋轉(zhuǎn)。觸摸電容檢測(cè)模塊主要用于檢測(cè)手指在屏幕邊緣引起的異常觸發(fā);觸摸屏驅(qū)動(dòng)模塊主要用于將檢測(cè)到的異常觸發(fā)處理成坐標(biāo)信息并發(fā)送給微處理器模塊;微處理器模塊主要是將從觸摸屏驅(qū)動(dòng)模塊得到的坐標(biāo)程序發(fā)送給旋轉(zhuǎn)控制模塊,同時(shí)通知UI應(yīng)用界面模塊讀取旋轉(zhuǎn)控制模塊處理后的信息;旋轉(zhuǎn)控制模塊主要是處理旋轉(zhuǎn)方向以及UI應(yīng)用界面所需要的圖像尺寸信息,該模塊可以將屏幕手指邊緣觸發(fā)點(diǎn)坐標(biāo)轉(zhuǎn)變成該點(diǎn)所對(duì)應(yīng)的圖像在顯示屏幕上能夠顯示的最大尺寸;UI應(yīng)用界面模塊主要是將獲得的圖像尺寸信息轉(zhuǎn)換成顯示信息,如根據(jù)圖像分辨率大小通過(guò)gpu重新繪制圖像;顯示模塊主要是顯示旋轉(zhuǎn)圖像。
本發(fā)明可以將顯示圖像按照用戶的角度任意的設(shè)置,可以提高用戶的體驗(yàn)效果,尤其對(duì)正方形屏幕有較好的旋轉(zhuǎn)效果。