20.11.2016 Views

ANDROID APP

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

การสร้างและการตรวจจับอีเวนต์<br />

135<br />

case MotionEvent.ACTION_MOVE:<br />

if (touchState == DRAG) {<br />

//single finger drag, translate accordingly<br />

matrix.set(eventMatrix);<br />

matrix.setTranslate(event.getX(0) - centerX,<br />

event.getY(0) - centerY);<br />

} else if (touchState == ZOOM) {<br />

//multi-finger zoom, scale accordingly around center<br />

float dist = calcDistance(event);<br />

if (dist > MIN_DIST) {<br />

matrix.set(eventMatrix);<br />

float scale = dist / eventDistance;<br />

}<br />

}<br />

matrix.postScale(scale, scale, centerX, centerY);<br />

// Perform the transformation<br />

view.setImageMatrix(matrix);<br />

break;<br />

case MotionEvent.ACTION_UP:<br />

case MotionEvent.ACTION_POINTER_UP:<br />

touchState = NONE;<br />

break;<br />

}<br />

}<br />

return true;<br />

private float calcDistance(MotionEvent event) {<br />

float x = event.getX(0) - event.getX(1);<br />

float y = event.getY(0) - event.getY(1);<br />

return FloatMath.sqrt(x * x + y * y);<br />

}<br />

}<br />

private void calcMidpoint(float centerX, float centerY,<br />

MotionEvent event) {<br />

centerX = (event.getX(0) + event.getX(1))/2;<br />

centerY = (event.getY(0) + event.getY(1))/2;<br />

}

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!