如何在Android中只有一个触摸事件?这是我的代码。最低API是API 7。
a.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getX(0)>=20 && event.getY(0)>=60 && event.getX(0)<=160 && event.getY(0)<=150) {
B b = new B(getApplicationContext());
relativeLayout.addView(b);
}
return true;
}
});
答案 0 :(得分:0)
如果您的应用永远不会使用多点触控功能,我建议您在主题中使用以下内容
<item name="android:windowEnableSplitTouch">false</item>
<item name="android:splitMotionEvents">false</item>
这将禁用整个应用的多点触控,除非您选择多个主题并在Activities
中以编程方式应用。
编辑:
如果您不喜欢上述方法,或者您的应用需要多点触控功能,请使用以下代码为特定视图禁用多点触控。
private boolean viewAlreadyTouched = false;
a.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
if(viewAlreadyTouched) {
return true;
} else {
viewAlreadyTouched = true;
if (event.getX(0)>=20 && event.getY(0)>=60 && event.getX(0)<=160 && event.getY(0)<=150) {
B b = new B(getApplicationContext());
relativeLayout.addView(b);
}
return true;
}
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
viewAlreadyTouched = false;
}
}
});