【发布时间】:2015-04-20 10:40:14
【问题描述】:
我有一个按钮,我希望它只能由手写笔点击。 我使用 setClickable 方法来启用或禁用对按钮的单击,但我怎样才能做到这一点只能用笔单击呢? 只有当 MotionEvent.TOOL_TYPE_STYLUS
我该怎么做?
【问题讨论】:
标签: android button motionevent
我有一个按钮,我希望它只能由手写笔点击。 我使用 setClickable 方法来启用或禁用对按钮的单击,但我怎样才能做到这一点只能用笔单击呢? 只有当 MotionEvent.TOOL_TYPE_STYLUS
我该怎么做?
【问题讨论】:
标签: android button motionevent
您可以覆盖Button 的onTouchListener,并立即返回未通过TOOL_TYPE_STYLUS 执行的触摸事件。要检索此信息,您可以使用
getToolType(int pointerX)
来自文档
获取给定指针索引的指针的工具类型
如果它返回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;
}
});
【讨论】:
performClick 是一种查看方法。如果附加了 OnClickListener,它会调用 onClick