當前位置: 首頁>>代碼示例>>Java>>正文


Java MotionEvent.getPressure方法代碼示例

本文整理匯總了Java中android.view.MotionEvent.getPressure方法的典型用法代碼示例。如果您正苦於以下問題:Java MotionEvent.getPressure方法的具體用法?Java MotionEvent.getPressure怎麽用?Java MotionEvent.getPressure使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在android.view.MotionEvent的用法示例。


在下文中一共展示了MotionEvent.getPressure方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: updateStateByEvent

import android.view.MotionEvent; //導入方法依賴的package包/類
protected void updateStateByEvent(MotionEvent curr) {
    final MotionEvent prev = mPrevEvent;

    // Reset mCurrEvent
    if (mCurrEvent != null) {
        mCurrEvent.recycle();
        mCurrEvent = null;
    }
    mCurrEvent = MotionEvent.obtain(curr);


    // Delta time
    mTimeDelta = curr.getEventTime() - prev.getEventTime();

    // Pressure
    mCurrPressure = curr.getPressure(curr.getActionIndex());
    mPrevPressure = prev.getPressure(prev.getActionIndex());
}
 
開發者ID:XecureIT,項目名稱:PeSanKita-android,代碼行數:19,代碼來源:BaseGestureDetector.java

示例2: updateStateByEvent

import android.view.MotionEvent; //導入方法依賴的package包/類
protected void updateStateByEvent(MotionEvent curr){
	final MotionEvent prev = mPrevEvent;
	
	// Reset mCurrEvent
    if (mCurrEvent != null) {
        mCurrEvent.recycle();
        mCurrEvent = null;
    }
    mCurrEvent = MotionEvent.obtain(curr);
    
    
    // Delta time
    mTimeDelta = curr.getEventTime() - prev.getEventTime();

    // Pressure
    mCurrPressure = curr.getPressure(curr.getActionIndex());
    mPrevPressure = prev.getPressure(prev.getActionIndex());
}
 
開發者ID:SavorGit,項目名稱:Hotspot-master-devp,代碼行數:19,代碼來源:BaseGestureDetector.java

示例3: onTouch

import android.view.MotionEvent; //導入方法依賴的package包/類
/**
 * Implemented ForceTouchListener
 * @param view VIew
 * @param motionEvent MotionEvent
 * @return boolean
 */
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
    float pressure = motionEvent.getPressure();
    checkParam(pressureLimit, millisToVibrate);
    setPressure(pressure);
    switch(motionEvent.getAction()){
        case MotionEvent.ACTION_DOWN:
            if(pressure >= pressureLimit && !alreadyExecuted && !isProgressive) {
                if(isVibrate) {
                    Vibrator vibr = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
                    vibr.vibrate(millisToVibrate);
                }
                forceTouchExecution.onForceTouch();
                alreadyExecuted = true;
            }else if(isProgressive){
                alreadyExecuted = false;
                progressiveForceTouch();
            }else{
                alreadyExecuted = false;
                forceTouchExecution.onNormalTouch();
                timer.stop(runnable);
            }
            break;
        case MotionEvent.ACTION_CANCEL:
            if(isProgressive) {
                timer.stop(runnable);
            }
            alreadyExecuted = false;
            break;
        case MotionEvent.ACTION_UP:
            if(isProgressive) {
                timer.stop(runnable);
            }
            alreadyExecuted = false;
            break;
    }
    return false;
}
 
開發者ID:l465659833,項目名稱:Bigbang,代碼行數:45,代碼來源:ForceTouchListener.java

示例4: onTouchEvent

import android.view.MotionEvent; //導入方法依賴的package包/類
/** Process incoming touch events */
@SuppressWarnings("unused")
public boolean onTouchEvent(MotionEvent event) {
	try {
		int pointerCount = multiTouchSupported ? (Integer) m_getPointerCount.invoke(event) : 1;
		if (DEBUG)
			Log.i("MultiTouch", "Got here 1 - " + multiTouchSupported + " " + mMode + " " + handleSingleTouchEvents + " " + pointerCount);
		if (mMode == MODE_NOTHING && !handleSingleTouchEvents && pointerCount == 1)
			// Not handling initial single touch events, just pass them on
			return false;
		if (DEBUG)
			Log.i("MultiTouch", "Got here 2");

		// Handle history first (we sometimes get history with ACTION_MOVE events)
		int action = event.getAction();
		int histLen = event.getHistorySize() / pointerCount;
		for (int histIdx = 0; histIdx <= histLen; histIdx++) {
			// Read from history entries until histIdx == histLen, then read from current event
			boolean processingHist = histIdx < histLen;
			if (!multiTouchSupported || pointerCount == 1) {
				// Use single-pointer methods -- these are needed as a special case (for some weird reason) even if
				// multitouch is supported but there's only one touch point down currently -- event.getX(0) etc. throw
				// an exception if there's only one point down.
				if (DEBUG)
					Log.i("MultiTouch", "Got here 3");
				xVals[0] = processingHist ? event.getHistoricalX(histIdx) : event.getX();
				yVals[0] = processingHist ? event.getHistoricalY(histIdx) : event.getY();
				pressureVals[0] = processingHist ? event.getHistoricalPressure(histIdx) : event.getPressure();
			} else {
				// Read x, y and pressure of each pointer
				if (DEBUG)
					Log.i("MultiTouch", "Got here 4");
				int numPointers = Math.min(pointerCount, MAX_TOUCH_POINTS);
				if (DEBUG && pointerCount > MAX_TOUCH_POINTS)
					Log.i("MultiTouch", "Got more pointers than MAX_TOUCH_POINTS");
				for (int ptrIdx = 0; ptrIdx < numPointers; ptrIdx++) {
					int ptrId = (Integer) m_getPointerId.invoke(event, ptrIdx);
					pointerIds[ptrIdx] = ptrId;
					// N.B. if pointerCount == 1, then the following methods throw an array index out of range exception,
					// and the code above is therefore required not just for Android 1.5/1.6 but also for when there is
					// only one touch point on the screen -- pointlessly inconsistent :(
					xVals[ptrIdx] = (Float) (processingHist ? m_getHistoricalX.invoke(event, ptrIdx, histIdx) : m_getX.invoke(event, ptrIdx));
					yVals[ptrIdx] = (Float) (processingHist ? m_getHistoricalY.invoke(event, ptrIdx, histIdx) : m_getY.invoke(event, ptrIdx));
					pressureVals[ptrIdx] = (Float) (processingHist ? m_getHistoricalPressure.invoke(event, ptrIdx, histIdx) : m_getPressure
							.invoke(event, ptrIdx));
				}
			}
			// Decode event
			decodeTouchEvent(pointerCount, xVals, yVals, pressureVals, pointerIds, //
					/* action = */processingHist ? MotionEvent.ACTION_MOVE : action, //
					/* down = */processingHist ? true : action != MotionEvent.ACTION_UP //
							&& (action & ((1 << ACTION_POINTER_INDEX_SHIFT) - 1)) != ACTION_POINTER_UP //
							&& action != MotionEvent.ACTION_CANCEL, //
					processingHist ? event.getHistoricalEventTime(histIdx) : event.getEventTime());
		}

		return true;
	} catch (Exception e) {
		// In case any of the introspection stuff fails (it shouldn't)
		Log.e("MultiTouchController", "onTouchEvent() failed", e);
		return false;
	}
}
 
開發者ID:monthlypub,項目名稱:SmingZZick_App,代碼行數:64,代碼來源:MultiTouchController.java

示例5: setContext

import android.view.MotionEvent; //導入方法依賴的package包/類
private void setContext(View view, MotionEvent curr) {
    if (mCurrEvent != null) {
        mCurrEvent.recycle();
    }
    mCurrEvent = MotionEvent.obtain(curr);

    mCurrLen = -1;
    mPrevLen = -1;
    mScaleFactor = -1;
    mCurrSpanVector.set(0.0f, 0.0f);

    final MotionEvent prev = mPrevEvent;

    final int prevIndex0 = prev.findPointerIndex(mActiveId0);
    final int prevIndex1 = prev.findPointerIndex(mActiveId1);
    final int currIndex0 = curr.findPointerIndex(mActiveId0);
    final int currIndex1 = curr.findPointerIndex(mActiveId1);

    if (prevIndex0 < 0 || prevIndex1 < 0 || currIndex0 < 0 || currIndex1 < 0) {
        mInvalidGesture = true;
        Log.e(TAG, "Invalid MotionEvent stream detected.", new Throwable());
        if (mGestureInProgress) {
            mListener.onScaleEnd(view, this);
        }
        return;
    }

    final float px0 = prev.getX(prevIndex0);
    final float py0 = prev.getY(prevIndex0);
    final float px1 = prev.getX(prevIndex1);
    final float py1 = prev.getY(prevIndex1);
    final float cx0 = curr.getX(currIndex0);
    final float cy0 = curr.getY(currIndex0);
    final float cx1 = curr.getX(currIndex1);
    final float cy1 = curr.getY(currIndex1);

    final float pvx = px1 - px0;
    final float pvy = py1 - py0;
    final float cvx = cx1 - cx0;
    final float cvy = cy1 - cy0;

    mCurrSpanVector.set(cvx, cvy);

    mPrevFingerDiffX = pvx;
    mPrevFingerDiffY = pvy;
    mCurrFingerDiffX = cvx;
    mCurrFingerDiffY = cvy;

    mFocusX = cx0 + cvx * 0.5f;
    mFocusY = cy0 + cvy * 0.5f;
    mTimeDelta = curr.getEventTime() - prev.getEventTime();
    mCurrPressure = curr.getPressure(currIndex0) + curr.getPressure(currIndex1);
    mPrevPressure = prev.getPressure(prevIndex0) + prev.getPressure(prevIndex1);
}
 
開發者ID:eventtus,項目名稱:photo-editor-android,代碼行數:55,代碼來源:ScaleGestureDetector.java


注:本文中的android.view.MotionEvent.getPressure方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。