按钮只能用手写笔点击
button clickable only with a stylus
我有一个按钮,我希望它只能用手写笔点击。
我使用方法 setClickable 来启用或禁用按钮上的点击,但我该怎么做才能只用笔点击呢?
只有在 MotionEvent.TOOL_TYPE_STYLUS
时按钮才可以点击
我该怎么做?
您可以立即覆盖 Button
的 onTouchListener
和 return 如果触摸事件不是通过 TOOL_TYPE_STYLUS
执行的。要检索此信息,您可以使用
getToolType(int pointerX)
来自文档
Gets the tool type of a pointer for the given pointer index
如果它 returns TOOL_TYPE_STYLUS
,那么您只需检查 MotionEvent
中的 ACTION_DOWN
/ACTION_UP
,然后调用 performClick()
.例如
b.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getToolType(0) == MotionEvent.TOOL_TYPE_STYLUS) {
if (event.getAction() == MotionEvent.ACTION_UP ) {
performClick();
return true;
}
}
return false;
}
});
我有一个按钮,我希望它只能用手写笔点击。 我使用方法 setClickable 来启用或禁用按钮上的点击,但我该怎么做才能只用笔点击呢? 只有在 MotionEvent.TOOL_TYPE_STYLUS
时按钮才可以点击我该怎么做?
您可以立即覆盖 Button
的 onTouchListener
和 return 如果触摸事件不是通过 TOOL_TYPE_STYLUS
执行的。要检索此信息,您可以使用
getToolType(int pointerX)
来自文档
Gets the tool type of a pointer for the given pointer index
如果它 returns TOOL_TYPE_STYLUS
,那么您只需检查 MotionEvent
中的 ACTION_DOWN
/ACTION_UP
,然后调用 performClick()
.例如
b.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getToolType(0) == MotionEvent.TOOL_TYPE_STYLUS) {
if (event.getAction() == MotionEvent.ACTION_UP ) {
performClick();
return true;
}
}
return false;
}
});