本文整理汇总了C#中Android.Views.MotionEvent.GetPressure方法的典型用法代码示例。如果您正苦于以下问题:C# MotionEvent.GetPressure方法的具体用法?C# MotionEvent.GetPressure怎么用?C# MotionEvent.GetPressure使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Android.Views.MotionEvent
的用法示例。
在下文中一共展示了MotionEvent.GetPressure方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: UpdateStateByEvent
/// <summary>
/// Updates the current state with the given event.
/// </summary>
/// <param name="curr">The current event.</param>
protected virtual void UpdateStateByEvent(MotionEvent curr) {
MotionEvent prev = _previousEvent;
// Reset _currentEvent.
if (_currentEvent != null) {
_currentEvent.Recycle ();
_currentEvent = null;
}
_currentEvent = MotionEvent.Obtain (curr);
// Delta time.
_timeDelta = 0;
if (prev != null) {
_timeDelta = curr.EventTime - prev.EventTime;
// Pressure.
_previousPressure = prev.GetPressure (prev.ActionIndex);
}
_currentPressure = curr.GetPressure (curr.ActionIndex);
}
示例2: OnTouchOrHoverEvent
bool OnTouchOrHoverEvent (MotionEvent e, bool isTouch)
{
MotionEventButtonState buttonState = e.ButtonState;
MotionEventButtonState pressedButtons = buttonState & ~mOldButtonState;
mOldButtonState = buttonState;
if ((pressedButtons & MotionEventButtonState.Secondary) != 0) {
// Advance color when the right mouse button or first stylus button
// is pressed.
AdvanceColor ();
}
PaintMode mode;
if ((buttonState & MotionEventButtonState.Tertiary) != 0) {
// Splat paint when the middle mouse button or second stylus button is pressed.
mode = PaintMode.Splat;
} else if (isTouch || (buttonState & MotionEventButtonState.Primary) != 0) {
// Draw paint when touching or if the primary button is pressed.
mode = PaintMode.Draw;
} else {
// Otherwise, do not paint anything.
return false;
}
MotionEventActions action = e.ActionMasked;
if (action == MotionEventActions.Down || action == MotionEventActions.Move
|| action == MotionEventActions.HoverMove) {
int N = e.HistorySize;
int P = e.PointerCount;
for (int i = 0; i < N; i++) {
for (int j = 0; j < P; j++) {
Paint (GetPaintModeForTool (e.GetToolType (j), mode),
e.GetHistoricalX (j, i),
e.GetHistoricalY(j, i),
e.GetHistoricalPressure (j, i),
e.GetHistoricalTouchMajor (j, i),
e.GetHistoricalTouchMinor (j, i),
e.GetHistoricalOrientation (j, i),
e.GetHistoricalAxisValue (Axis.Distance, j, i),
e.GetHistoricalAxisValue (Axis.Tilt, j, i));
}
}
for (int j = 0; j < P; j++) {
Paint (GetPaintModeForTool (e.GetToolType (j), mode),
e.GetX (j),
e.GetY (j),
e.GetPressure (j),
e.GetTouchMajor (j),
e.GetTouchMinor (j),
e.GetOrientation (j),
e.GetAxisValue (Axis.Distance, j),
e.GetAxisValue (Axis.Tilt, j));
}
mCurX = e.GetX ();
mCurY = e.GetY ();
}
return true;
}
示例3: UpdateStateByEvent
protected internal virtual void UpdateStateByEvent(MotionEvent curr)
{
MotionEvent prev = mPrevEvent;
// Reset mCurrEvent
if (mCurrEvent != null)
{
mCurrEvent.Recycle();
mCurrEvent = null;
}
mCurrEvent = MotionEvent.Obtain(curr);
// Delta time
mTimeDelta = curr.EventTime - prev.EventTime;
// Pressure
mCurrPressure = curr.GetPressure(curr.ActionIndex);
mPrevPressure = prev.GetPressure(prev.ActionIndex);
}
示例4: SetContext
void SetContext (MotionEvent curr)
{
if (mCurrEvent != null) {
mCurrEvent.Recycle();
}
mCurrEvent = MotionEvent.Obtain(curr);
mCurrLen = -1;
mPrevLen = -1;
mScaleFactor = -1;
MotionEvent prev = mPrevEvent;
int prevIndex0 = prev.FindPointerIndex(mActiveId0);
int prevIndex1 = prev.FindPointerIndex(mActiveId1);
int currIndex0 = curr.FindPointerIndex(mActiveId0);
int currIndex1 = curr.FindPointerIndex(mActiveId1);
if (prevIndex0 < 0 || prevIndex1 < 0 || currIndex0 < 0 || currIndex1 < 0) {
mInvalidGesture = true;
if (mGestureInProgress) {
mListener.OnScaleEnd(this);
}
return;
}
float px0 = prev.GetX(prevIndex0);
float py0 = prev.GetY(prevIndex0);
float px1 = prev.GetX(prevIndex1);
float py1 = prev.GetY(prevIndex1);
float cx0 = curr.GetX(currIndex0);
float cy0 = curr.GetY(currIndex0);
float cx1 = curr.GetX(currIndex1);
float cy1 = curr.GetY(currIndex1);
float pvx = px1 - px0;
float pvy = py1 - py0;
float cvx = cx1 - cx0;
float cvy = cy1 - cy0;
mPrevFingerDiffX = pvx;
mPrevFingerDiffY = pvy;
mCurrFingerDiffX = cvx;
mCurrFingerDiffY = cvy;
mFocusX = cx0 + cvx * 0.5f;
mFocusY = cy0 + cvy * 0.5f;
mTimeDelta = curr.EventTime - prev.EventTime;
mCurrPressure = curr.GetPressure(currIndex0) + curr.GetPressure(currIndex1);
mPrevPressure = prev.GetPressure(prevIndex0) + prev.GetPressure(prevIndex1);
}