当手指仍在屏幕上时,Android JazzHand设备会触发MouseEvent.ACTION\u
我正在不同的Android手机上测试不同的多点触摸跟踪。运行Android KitKat 4.4.4的摩托罗拉Moto G具有JazzHand功能:它能同时响应5次屏幕触摸。然而,有时当两个或更多的手指仍在屏幕上时,它会停止对触摸的响应 当手指仍在屏幕上时,会不时触发一个MotionEvent,该事件通过MouseEvent.ACTION\u UP响应getActionMasked()。从那时起,检测不到其他触摸。你必须举起所有的手指,然后重新开始 我正在使用一个基本的Hello World项目,并对其进行了一些小的修改。activity_main.xml和MainActivity.java文件的内容如下所示。输出应为接触点列表。当您抬起手指时,输出应为空白。但是,当您在屏幕上移动手指时,有时也会发生这种情况 如果您能在自己的多点触控Android设备上进行测试,让我知道在其他设备型号上是否也会出现这种情况,我将不胜感激。如果您能提供一个解释或解决办法,那将不胜感激当手指仍在屏幕上时,Android JazzHand设备会触发MouseEvent.ACTION\u,android,multi-touch,Android,Multi Touch,我正在不同的Android手机上测试不同的多点触摸跟踪。运行Android KitKat 4.4.4的摩托罗拉Moto G具有JazzHand功能:它能同时响应5次屏幕触摸。然而,有时当两个或更多的手指仍在屏幕上时,它会停止对触摸的响应 当手指仍在屏幕上时,会不时触发一个MotionEvent,该事件通过MouseEvent.ACTION\u UP响应getActionMasked()。从那时起,检测不到其他触摸。你必须举起所有的手指,然后重新开始 我正在使用一个基本的Hello World项目
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
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">
<TextView
android:text="@string/hello_world"
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
MainActivity.java
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.text_view);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
String points = "";
int action = event.getActionMasked();
if (action == MotionEvent.ACTION_CANCEL) {
points = "Action cancelled";
} else if (action != MotionEvent.ACTION_UP) {
int size = event.getPointerCount();
for (int ii = 0; ii < size; ii++) {
points += "\n(" + event.getX(ii) + ", " + event.getY(ii) + ")";
}
}
textView.setText(points);
return true;
}
}
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.MotionEvent;
导入android.widget.TextView;
公共类MainActivity扩展了活动{
私有文本视图文本视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView=(textView)findViewById(R.id.text\u视图);
}
@凌驾
公共布尔onTouchEvent(运动事件){
字符串点=”;
int action=event.getActionMasked();
if(action==MotionEvent.action\u CANCEL){
points=“行动取消”;
}else if(action!=MotionEvent.action\u UP){
int size=event.getPointerCount();
用于(int ii=0;ii