如何在运行ICS 4.0.3的Lenovo Thinkpad Tablet上以编程方式打开“仅笔”模式?
答案 0 :(得分:2)
我很抱歉我无法回答你的问题,虽然我认为WebnetMobile可能是对的 - 似乎没有针对笔模式的API方法。但是,如果你转到这篇文章http://knowledge.lapasa.net/?p=490,它会指出你应该专注于输入设备的直径(手指的触摸直径远大于笔式触控笔的直径)。
至于WebnetMobile说在平板模式下使用平板电脑毫无意义,我会说任何一位艺术家或笔记记者都渴望能够将你的手放在你的表面上'正在绘画/写作。
答案 1 :(得分:1)
如果您正在开发应用,则可以实际实现此功能。如果你的手写笔可以"悬停"在触摸之前在屏幕上,您可以在活动的最高视图中添加OnHoverListener
,以将全局变量isPen
设置为true。然后在您的活动中覆盖dispatchTouchEvent()
,并在传递应用中的事件之前检查变量。
rootView.setOnHoverListener(new View.OnHoverListener() {
@Override
public boolean onHover(View view,MotionEvent event) {
isPen = true;
return true;
}
});
和
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
if(isPen) {
return super.dispatchTouchEvent(event);
} else {
return true;
}
}
答案 2 :(得分:0)
我知道这是旧的,但我在这个问题上没有发现任何其他问题,我最终提出了这个解决方案:你需要扩展你的视图并覆盖onTouchEvent:
@Override
public boolean onTouchEvent(MotionEvent event) {
// Disable multitouch
if (event.getPointerCount() != 1)
return false;
// If not stylus return
MotionEvent.PointerProperties pp = new MotionEvent.PointerProperties();
event.getPointerProperties(0, pp);
if (pp.toolType != MotionEvent.TOOL_TYPE_STYLUS)
return false;
// Dispatch event to the original view
return super.onTouchEvent(event);
}