導航:首頁 > 操作系統 > android旋轉手勢

android旋轉手勢

發布時間:2022-05-27 07:13:01

android手機有哪些手勢操作,能具體點嗎

android手機有哪些手勢操作:

  1. 「點擊」,也叫「單擊」,即輕觸屏幕一下。無論是搭載何種操作系統的觸控手機,這個都是出現頻率最高的動作。點擊主要用來打開程序,還有功能表(抽屜)。

  2. 「點住」,也叫「長按」、「按住」,按住屏幕超過兩秒。此動作通常用來調出「菜單」。某些應用程序在界面空白處長按可以調出菜單;某些條目長按也可以彈出菜單,比如當您需要轉發簡訊時,在簡訊對話界面長按簡訊內容,必然會彈出菜單,菜單中通常會有「轉發」選項。

    在進行文字編輯時,點住文字部分,然後調出遊標進行精準定位。

    當然,此動作也可用於多選、快捷視圖,比如在「圖庫(相冊)」中,默認視圖下,長按相冊文件夾、可對文件夾進行多選操作;打開相冊文件夾後,長按照片,同樣可對照片進行多選操作,選擇完畢後可進行批量操作(發送、刪除)。

  3. 「拖動」,准確來說應該叫做「按住並拖動」。「拖動」主屏幕編輯時的常見動作,比如對桌面「小組件」或者「圖標」進行位置編輯時。另外也用於進度定位,比如播放音樂或者視頻時,需要常常拖動進度條。

  4. 「雙擊」就是短時間內連續雙擊屏幕兩次,主要用於快速縮放,比如瀏覽圖片時雙擊可以快速放大,再次雙擊可以復位;瀏覽網頁時,對文章正文部分雙擊可使文字自適應屏幕,當然某些視頻播放器雙擊可切換至全屏模式。

  5. 滑動,也算是一個常見操作。主要用於查看屏幕無法完全顯示的頁面,功能類似滑鼠的滾輪。此操作主要用於查看圖片、網頁、純文本(簡訊、郵件、筆記)。

    某些視頻播放器還定義了特殊功能,比如亮度調節、快進快退,比如「MX Player」、「VPlayer」。

  6. 「縮放」動作,是查看圖片、網頁時最常見的操作,照相時也可使用縮放手勢來進行調焦。在MX Player中,甚至可以將視頻畫面進行縮放。

Ⅱ 如何通過手勢實現android view 的 縮放 平移

代碼主要分兩部分,一個activity一個view,代碼如下:

java">packagecom.example.touch;

importandroid.app.Activity;
importandroid.os.Bundle;

{
/**.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
TouchImageViewimg=newTouchImageView(this);
setContentView(img);
}
}



packagecom.example.touch;

importandroid.graphics.Bitmap;
importandroid.graphics.Bitmap.Config;
importandroid.graphics.BitmapFactory;
importandroid.graphics.Canvas;
importandroid.graphics.Matrix;
importandroid.graphics.PointF;
importandroid.util.DisplayMetrics;
importandroid.util.FloatMath;
importandroid.view.MotionEvent;
importandroid.widget.ImageView;

{

floatx_down=0;
floaty_down=0;
PointFstart=newPointF();
PointFmid=newPointF();
floatoldDist=1f;
floatoldRotation=0;
Matrixmatrix=newMatrix();
Matrixmatrix1=newMatrix();
MatrixsavedMatrix=newMatrix();

privatestaticfinalintNONE=0;
privatestaticfinalintDRAG=1;
privatestaticfinalintZOOM=2;
intmode=NONE;

booleanmatrixCheck=false;

intwidthScreen;
intheightScreen;

Bitmapgintama;

publicTouchImageView(){
super(activity);
gintama=BitmapFactory.decodeResource(getResources(),R.drawable.gintama);

DisplayMetricsdm=newDisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(dm);
widthScreen=dm.widthPixels;
heightScreen=dm.heightPixels;

matrix=newMatrix();
}

protectedvoidonDraw(Canvascanvas){
canvas.save();
canvas.drawBitmap(gintama,matrix,null);
canvas.restore();
}

publicbooleanonTouchEvent(MotionEventevent){
switch(event.getAction()&MotionEvent.ACTION_MASK){
caseMotionEvent.ACTION_DOWN:
mode=DRAG;
x_down=event.getX();
y_down=event.getY();
savedMatrix.set(matrix);
break;
caseMotionEvent.ACTION_POINTER_DOWN:
mode=ZOOM;
oldDist=spacing(event);
oldRotation=rotation(event);
savedMatrix.set(matrix);
midPoint(mid,event);
break;
caseMotionEvent.ACTION_MOVE:
if(mode==ZOOM){
matrix1.set(savedMatrix);
floatrotation=rotation(event)-oldRotation;
floatnewDist=spacing(event);
floatscale=newDist/oldDist;
matrix1.postScale(scale,scale,mid.x,mid.y);//縮放
matrix1.postRotate(rotation,mid.x,mid.y);//旋轉
matrixCheck=matrixCheck();
if(matrixCheck==false){
matrix.set(matrix1);
invalidate();
}
}elseif(mode==DRAG){
matrix1.set(savedMatrix);
matrix1.postTranslate(event.getX()-x_down,event.getY()
-y_down);//平移
matrixCheck=matrixCheck();
matrixCheck=matrixCheck();
if(matrixCheck==false){
matrix.set(matrix1);
invalidate();
}
}
break;
caseMotionEvent.ACTION_UP:
caseMotionEvent.ACTION_POINTER_UP:
mode=NONE;
break;
}
returntrue;
}

privatebooleanmatrixCheck(){
float[]f=newfloat[9];
matrix1.getValues(f);
//圖片4個頂點的坐標
floatx1=f[0]*0+f[1]*0+f[2];
floaty1=f[3]*0+f[4]*0+f[5];
floatx2=f[0]*gintama.getWidth()+f[1]*0+f[2];
floaty2=f[3]*gintama.getWidth()+f[4]*0+f[5];
floatx3=f[0]*0+f[1]*gintama.getHeight()+f[2];
floaty3=f[3]*0+f[4]*gintama.getHeight()+f[5];
floatx4=f[0]*gintama.getWidth()+f[1]*gintama.getHeight()+f[2];
floaty4=f[3]*gintama.getWidth()+f[4]*gintama.getHeight()+f[5];
//圖片現寬度
doublewidth=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
//縮放比率判斷
if(width<widthScreen/3||width>widthScreen*3){
returntrue;
}
//出界判斷
if((x1<widthScreen/3&&x2<widthScreen/3
&&x3<widthScreen/3&&x4<widthScreen/3)
||(x1>widthScreen*2/3&&x2>widthScreen*2/3
&&x3>widthScreen*2/3&&x4>widthScreen*2/3)
||(y1<heightScreen/3&&y2<heightScreen/3
&&y3<heightScreen/3&&y4<heightScreen/3)
||(y1>heightScreen*2/3&&y2>heightScreen*2/3
&&y3>heightScreen*2/3&&y4>heightScreen*2/3)){
returntrue;
}
returnfalse;
}

//觸碰兩點間距離
privatefloatspacing(MotionEventevent){
floatx=event.getX(0)-event.getX(1);
floaty=event.getY(0)-event.getY(1);
returnFloatMath.sqrt(x*x+y*y);
}

//取手勢中心點
privatevoidmidPoint(PointFpoint,MotionEventevent){
floatx=event.getX(0)+event.getX(1);
floaty=event.getY(0)+event.getY(1);
point.set(x/2,y/2);
}

//取旋轉角度
privatefloatrotation(MotionEventevent){
doubledelta_x=(event.getX(0)-event.getX(1));
doubledelta_y=(event.getY(0)-event.getY(1));
doubleradians=Math.atan2(delta_y,delta_x);
return(float)Math.toDegrees(radians);
}

//將移動,縮放以及旋轉後的圖層保存為新圖片
//本例中沒有用到該方法,需要保存圖片的可以參考
publicBitmapCreatNewPhoto(){
Bitmapbitmap=Bitmap.createBitmap(widthScreen,heightScreen,
Config.ARGB_8888);//背景圖片
Canvascanvas=newCanvas(bitmap);//新建畫布
canvas.drawBitmap(gintama,matrix,null);//畫圖片
canvas.save(Canvas.ALL_SAVE_FLAG);//保存畫布
canvas.restore();
returnbitmap;
}

}

Ⅲ Android 相對布局怎麼隨手勢旋轉

給出思路:
在代碼中獲得要旋轉的布局;
監聽布局的OnTouch事件;
當觸發滑動事件後,創建一個旋轉動畫,將動畫賦予布局;
布局中的控制項注冊自己的監聽器,跟這個旋轉沒有影響。
這個是我想到的,沒試驗,題主可以試試。
有疑問,請追問。望採納!

Ⅳ android開發中 順時針或者逆時針旋轉手勢如何檢測

這個真心不好判斷,因為6也是個逆時針,這個起點終點和軌跡都不好判斷

Ⅳ 如何在android中加入一個用3dsmax製作的3D模型,並讓他根據手勢旋轉

寫一個3d模型瀏覽器app,必須支持你的模型格式,加入手勢操作

Ⅵ android順時針旋轉手勢和逆時針旋轉手勢

ontouch的監聽可以獲取到劃過的點的坐標,你在數據處理一下就行了。

Ⅶ android中怎麼實現隨手指移動物體圍繞一個點的轉動

用旋轉,我忘記了是什麼類了,總之就是矩陣運算,然後隨著手指的坐標實時計算出需要旋轉的角度,然後再把圖片旋轉後畫出來。

Ⅷ android中開發百度地圖怎麼設置地圖不能旋轉以及手勢切換視角的問題

MapController對象.setRotationGesturesEnabled(false);// 不使用縮放手勢
MapController對象.setOverlookingGesturesEnabled(false);// 不使用視角手勢

Ⅸ Android中如何讓手勢和滾動視圖滑動方向一致

  1. 採用自定義Toolbar所以得更改默認布局,使用不帶ActionBar的主題。

其他要素

  1. 基本成型的布局了,代碼中沒有什麼注釋,看代碼的速度要遠勝於看注釋速度。由於代碼都是常用的,寫大量的注釋反而感覺很多餘。

  2. 獲取到手勢滑動的方向和距離,以此來判斷是上滑還是下滑。

  3. 上滑:將Toolbar隱藏,下滑:將Toolbar顯示。

Ⅹ android開發 實現一個可以由手勢控制的轉盤

這個問題有點復雜。

這個復寫一個新的ViewGroup ,這個ViewGroup裡面 繪制你的 轉盤,轉盤應該是圓的吧,然後加入三個按鈕,手勢就是復寫onTouch事件去判斷手勢是左邊還是右邊 還是上邊 下邊。

閱讀全文

與android旋轉手勢相關的資料

熱點內容
蘋果手機怎麼切換app美國賬號 瀏覽:861
編譯程序輸入一個字元串 瀏覽:406
圓命令畫法 瀏覽:307
如果給電腦e盤文件加密 瀏覽:801
javaswing項目 瀏覽:778
androidsdksetup 瀏覽:1005
pdf怎麼設置中文 瀏覽:128
安卓手機用什麼軟體看倫敦金 瀏覽:966
魅族文件夾無名稱 瀏覽:789
蘇黎世無人機演算法 瀏覽:872
核桃編程和小碼王的融資 瀏覽:686
微積分教材pdf 瀏覽:727
寫python給微信好友發消息 瀏覽:338
蚊帳自營米加密 瀏覽:422
學校推薦核桃編程 瀏覽:805
湖南農信app怎麼導明細 瀏覽:475
福特abs編程 瀏覽:511
如何自學安卓手機 瀏覽:439
以太坊源碼共識機制 瀏覽:912
單片機探測器 瀏覽:874