我怎样才能在android中只有一个触摸事件

时间:2015-09-03 17:19:08

标签: android

如何在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;
    }
});

1 个答案:

答案 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;
    }


}

});