閱讀英文

共用方式為


Surface Duo 上的手寫筆輸入

Android 手寫筆事件的處理方式是在 View 類別中實作 onTouchEvent 方法。 讓應用程式能以觸控方式互動的關鍵在於,擴充 View 的實作以覆寫用來接聽觸控事件的 onTouchEvent。 作為引數的 MotionEvent 會報告來自觸控螢幕的輸入詳細資料,讓使用者可以使用手寫筆與螢幕互動。

您的程式碼可以藉由查看 MotionEvent.getToolType 方法所傳回的值,來偵測出使用者正在使用手寫筆。 值為 TOOL_TYPE_STYLUS 表示手寫筆,值為 TOOL_TYPE_ERASER 則表示以橡皮擦向下的方式反握手寫筆。

氣壓

表示使用者使用手寫筆時的力道。 力道通常介於 0 到 1 之間 (但不受系統限制);0 表示輕度力道,1 表示重度力道。

藉由呼叫 getPressure 方法或使用 AXIS_PRESSURE 參數呼叫 getAxisValue,即可取得此值。

Orientation

當握住的手寫筆朝向螢幕頂端,且橡皮擦部分朝向使用者時,方向值會從 0 開始。

旋轉手寫筆時,如果手寫筆朝向左側 (手寫筆尖端在橡皮擦左側),則值會是負數,朝向右側時則會是正數。

藉由呼叫 getOrientation 方法或使用 AXIS_ORIENTATION 參數呼叫 getAxisValue,即可取得此值。

下列程式碼片段會偵測手寫筆的方向,並在螢幕上繪製弧線以符合:

float orientation = ((event.getOrientation() * 57.2958f) + 90 ) % 360 ;
canvas.drawArc(oval,orientation,5.0f,true,paint);

按鈕

getButtonState 方法會傳回所按下按鈕的位元遮罩,例如代表手寫筆上按鈕的 BUTTON_STYLUS_PRIMARY 和 BUTTON_STYLUS_SECONDARY。

範例