0

如何在运行 ICS 4.0.3 的 Lenovo Thinkpad Tablet 上以编程方式打开“仅笔”模式?

4

3 回答 3

2

很抱歉,我无法回答您的问题,尽管我认为 WebnetMobile 可能是正确的 - 似乎没有用于仅笔模式的 API 方法。但是,如果您访问这篇文章http://knowledge.lapasa.net/?p=490,它指出您应该关注输入设备的直径(手指的触摸直径远大于触控笔的直径) )。

至于 WebnetMobile 说在纯笔模式下使用平板电脑毫无意义,我想说任何艺术家或笔记记录者都渴望能够将手放在正在绘画的表面上/写作。

于 2012-11-27T12:47:02.257 回答
1

如果您正在开发一个应用程序,您实际上可以实现这一点。如果您的触控笔在触摸之前可以“悬停”在屏幕上,您可以OnHoverListener在 Activity 的最高视图上添加一个以将全局变量设置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;
    }
}
于 2015-04-08T00:33:48.003 回答
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);
}
于 2017-06-15T21:21:56.697 回答