20.11.2016 Views

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;

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

Saved successfully!

Ooh no, something went wrong!