ANDROID APP
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
134 บทที่ 5 อีเวนต์ต่างๆ ที่เกิดขึ้นในส่วนการติดต่อกับผู้ใช้งาน<br />
public class MultiTouch extends Activity implements OnTouchListener {<br />
// Matrix instances to move and zoom image<br />
Matrix matrix = new Matrix();<br />
Matrix eventMatrix = new Matrix();<br />
// possible touch states<br />
final static int NONE = 0;<br />
final static int DRAG = 1;<br />
final static int ZOOM = 2;<br />
int touchState = NONE;<br />
@Override<br />
public void onCreate(Bundle savedInstanceState) {<br />
super.onCreate(savedInstanceState);<br />
setContentView(R.layout.main);<br />
ImageView view = (ImageView) findViewById(R.id.imageView);<br />
view.setOnTouchListener(this);<br />
}<br />
final static float MIN_DIST = 50;<br />
static float eventDistance = 0;<br />
static float centerX =0, centerY = 0;<br />
@Override<br />
public boolean onTouch(View v, MotionEvent event) {<br />
ImageView view = (ImageView) v;<br />
switch (event.getAction() & MotionEvent.ACTION_MASK) {<br />
case MotionEvent.ACTION_DOWN:<br />
//primary touch event starts: remember touch down location<br />
touchState = DRAG;<br />
centerX = event.getX(0);<br />
centerY = event.getY(0);<br />
eventMatrix.set(matrix);<br />
break;<br />
case MotionEvent.ACTION_POINTER_DOWN:<br />
//secondary touch event starts: remember distance and center<br />
eventDistance = calcDistance(event);<br />
calcMidpoint(centerX, centerY, event);<br />
if (eventDistance > MIN_DIST) {<br />
eventMatrix.set(matrix);<br />
touchState = ZOOM;<br />
}<br />
break;