我想在这里分开一些东西。
我有一个带图像按钮的程序。他们附有onTouchListeners。
我希望触摸事件只需触摸即可触发,而不是点击。我的意思是,如果我使用鼠标点击,例如,我不希望触发附加到ImageButton的onTouch事件。但是,当您在按钮上单击鼠标时会触发它。
触摸发生时是否可以触发事件?
我的代码:
myImageButton.setOnTouchListener(new Button.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent arg1) {
if (arg1.getAction() == android.view.MotionEvent.ACTION_DOWN) {
Toast.makeText(LiVoiceActivity.this,
"You touched me!",
Toast.LENGTH_LONG).show();
}
return true;
}
});
谢谢!
答案 0 :(得分:0)
MotionEvent类中有一个称为Tool_Type的字段。我在这里实现了鼠标类型的检查:
API 14 AKA EASY MODE
myImageButton.setOnTouchListener(new Button.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent arg1) {
if (arg1.getAction() == android.view.MotionEvent.ACTION_DOWN
&& (MotionEvent.TOOL_TYPE_MOUSE != arg1.getToolType(0)) {
Toast.makeText(LiVoiceActivity.this,
"You touched me!",
Toast.LENGTH_LONG).show();
}
return true;
}
});
API 9
myImageButton.setOnTouchListener(new Button.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent arg1) {
if (arg1.getAction() == android.view.MotionEvent.ACTION_DOWN
&& (arg1.getSize() > 1) {
Toast.makeText(LiVoiceActivity.this,
"You touched me!",
Toast.LENGTH_LONG).show();
}
return true;
}
});
现在检查收到的MotionEvent的大小。 PRESUMABLY,鼠标点击的大小为1,因此,只能识别大于1的大小。使用该数字进行游戏,看看是否可以区分鼠标和手指触摸。