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 />
}