日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android多点触摸事件,Android多点触控

發布時間:2023/12/16 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android多点触摸事件,Android多点触控 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當多于一個手指同時觸摸屏幕時,會發生多點觸控手勢。Android允許我們檢測這些手勢。

只要多個手指同時觸摸屏幕,Android系統就會生成以下觸摸事件。

序號

活動和描述

1

ACTION_DOWN

對于觸摸屏幕的第一個指針。這開始了手勢。

2

ACTION_POINTER_DOWN

對于超出第一個進入屏幕的額外指針。

3

ACTION_MOVE

在新聞姿態期間發生了變化。

4

ACTION_POINTER_UP

非主指針上升時發送。

ACTION_UP

最后一個指針離開屏幕時發送。

因此,為了檢測上述任何事件,您需要覆蓋 onTouchEvent() 方法并手動檢查這些事件。其語法如下

public boolean onTouchEvent(MotionEvent ev){

final int actionPeformed = ev.getAction();

switch(actionPeformed){

case MotionEvent.ACTION_DOWN:{

break;

}

case MotionEvent.ACTION_MOVE:{

break;

}

return true;

}

}

在這些情況下,您可以執行任何您喜歡的計算。例如縮放,縮小等。為了獲得X軸和Y軸的坐標,可以調用 getX() 和 getY()

方法。其語法如下

final float x = ev.getX();

final float y = ev.getY();

除了這些方法之外,此MotionEvent類還提供了其他方法,以便更好地處理多點觸控。這些方法如下 -

序號

方法和描述

1

getAction()

此方法返回正在執行的操作類型

2

getPressure()

此方法返回第一個索引的此事件的當前壓力

3

getRawX()

此方法返回此事件的原始原始X坐標

4

getRawY()

此方法返回此事件的原始原始Y坐標

5

getSize()

此方法返回第一個指針索引的大小

6

getSource()

此方法獲取事件的來源

7

getXPrecision()

此方法返回報告的X坐標的精度

8

getYPrecision()

此方法返回報告的Y坐標的精度

這是一個演示多點觸控使用的示例。它創建了一個基本的多點觸控手勢應用程序,允許您在執行多點觸控時查看坐標。

要試驗此示例,您需要在實際設備上運行它。

序號

描述

1

您將使用android studio在com.example.sairamkrishna.myapplication包下創建一個Android應用程序。

2

修改src / MainActivity.java文件以添加多點觸控代碼。

3

修改res / layout / activity_main以添加相應的XML組件。

4

運行應用程序并選擇正在運行的Android設備并在其上安裝應用程序并驗證結果。

以下是修改后的主活動文件 src / MainActivity.java 的內容 。

package com.example.sairamkrishna.myapplication;

import android.app.Activity;

import android.os.Bundle;

import android.view.MotionEvent;

import android.view.View;

import android.widget.EditText;

import android.widget.TextView;

public class MainActivity extends Activity {

float xAxis = 0f;

float yAxis = 0f;

float lastXAxis = 0f;

float lastYAxis = 0f;

EditText ed1, ed2, ed3, ed4;

TextView tv1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

ed1 = (EditText) findViewById(R.id.editText);

ed2 = (EditText) findViewById(R.id.editText2);

ed3 = (EditText) findViewById(R.id.editText3);

ed4 = (EditText) findViewById(R.id.editText4);

tv1=(TextView)findViewById(R.id.textView2);

tv1.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View v, MotionEvent event) {

final int actionPeformed = event.getAction();

switch(actionPeformed){

case MotionEvent.ACTION_DOWN:{

final float x = event.getX();

final float y = event.getY();

lastXAxis = x;

lastYAxis = y;

ed1.setText(Float.toString(lastXAxis));

ed2.setText(Float.toString(lastYAxis));

break;

}

case MotionEvent.ACTION_MOVE:{

final float x = event.getX();

final float y = event.getY();

final float dx = x - lastXAxis;

final float dy = y - lastYAxis;

xAxis += dx;

yAxis += dy;

ed3.setText(Float.toString(xAxis));

ed4.setText(Float.toString(yAxis));

break;

}

}

return true;

}

});

}

}

以下是xml res / layout / activity_main.xml 的修改內容。

xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:paddingBottom="@dimen/activity_vertical_margin"

tools:context=".MainActivity"

android:transitionGroup="true">

android:layout_height="wrap_content"

android:id="@+id/textview"

android:textSize="35dp"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Tutorials point"

android:id="@+id/textView"

android:layout_below="@+id/textview"

android:layout_centerHorizontal="true"

android:textColor="#ff7aff24"

android:textSize="35dp" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/imageView"

android:src="@drawable/abc"

android:layout_below="@+id/textView"

android:layout_centerHorizontal="true"

android:theme="@style/Base.TextAppearance.AppCompat" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/editText"

android:layout_below="@+id/imageView"

android:layout_alignRight="@+id/textview"

android:layout_alignEnd="@+id/textview"

android:hint="X-Axis"

android:layout_alignLeft="@+id/textview"

android:layout_alignStart="@+id/textview"

android:textColorHint="#ff69ff0e" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/editText2"

android:layout_below="@+id/editText"

android:layout_alignLeft="@+id/editText"

android:layout_alignStart="@+id/editText"

android:textColorHint="#ff21ff11"

android:hint="Y-Axis"

android:layout_alignRight="@+id/editText"

android:layout_alignEnd="@+id/editText" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/editText3"

android:layout_below="@+id/editText2"

android:layout_alignLeft="@+id/editText2"

android:layout_alignStart="@+id/editText2"

android:hint="Move X"

android:textColorHint="#ff33ff20"

android:layout_alignRight="@+id/editText2"

android:layout_alignEnd="@+id/editText2" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/editText4"

android:layout_below="@+id/editText3"

android:layout_alignLeft="@+id/editText3"

android:layout_alignStart="@+id/editText3"

android:textColorHint="#ff31ff07"

android:hint="Move Y"

android:layout_alignRight="@+id/editText3"

android:layout_alignEnd="@+id/editText3" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Touch here"

android:id="@+id/textView2"

android:layout_alignParentBottom="true"

android:layout_alignLeft="@+id/imageView"

android:layout_alignStart="@+id/imageView"

android:focusable="true"

android:typeface="sans"

android:clickable="true"

android:textColor="#ff5480ff"

android:textSize="35dp" />

以下是 res / values / string.xml 的內容 。

My Application

以下是 AndroidManifest.xml 文件的內容。

package="com.example.sairamkrishna.myapplication" >

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

android:name=".MainActivity"

android:label="@string/app_name" >

讓我們嘗試運行您的應用程序。我假設您已將實際的Android移動設備與計算機相關聯。要從android studio運行應用程序,請打開項目的一個活動文件,然后單擊

工具欄中的“運行” 圖標。在開始申請之前,Android studio將顯示以下窗口,以選擇您要運行Android應用程序的選項。

選擇您的移動設備作為選項,然后檢查您的移動設備,它將顯示您的默認屏幕 -

默認情況下,您在任何字段中都不會看到任 現在只需點擊“觸摸此處”區域,即可查看字段中的一些數據。如下所示 -

您將看到“移動”字段中的數據為0,因為僅執行了單個觸摸手勢。現在點擊屏幕并開始拖動手指。您將看到移動字段數據的更改。如下所示 -

總結

以上是生活随笔為你收集整理的android多点触摸事件,Android多点触控的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。