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.

กรรมวิธี: การใช้งานมัลติทัช<br />

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

133<br />

อีเวนต์มัลติทัช เป็นอีเวนต์ที่เกิดจากการสัมผัสจอภาพ พร้อมกันมากกว่าหนึ่งจุด พร้อมๆ กัน<br />

ซึ่งเราสามารถตรวจจับเหตุการณ์นี้ได้ด้วยการใช้ OnTouchListener ที่จะคอยตรวจจับการกระทำบน<br />

จอในแบบต่างๆ ไม่ว่าจะเป็น:<br />

m ACTION_DOWN – เกิดขึ้นเมื่อมีการสัมผัสจอมากกว่าหนึ่งจุดโดยเริ่มการสัมผัสจุดที่ 1<br />

m ACTION_POINTER_DOWN – เกิดขึ้นเมื่อมีการสัมผัสจอจุดที่ 2<br />

m ACTION_MOVE – เกิดขึ้นเมื่อมีการเคลื่อนไหวหลังจากสัมผัสจอทั้ง 2 จุดแล้ว<br />

m ACTION_POINTER_UP – เกิดขึ้นเมื่อมีการปล่อยนิ้วที่สัมผัสจอจุดที่ 2<br />

m ACTION_UP – เกิดขึ้นเมื่อมีการปล่อยนิ้วที่สัมผัสจอภาพจุดที่ 1 และการทำงานของ<br />

เจสเจอร์เสร็จสิ้น<br />

ส่วนนี้จะเป็นการแสดงรูปภาพบนจอ และใช้มัลติทัชเพื่อย่อหรือขยายภาพ และสัมผัสที่ภาพเพื่อ<br />

ลากไปยังตำแหน่งต่างๆ บนจอได้ ในชุดคำสั่งที่ 5.13 จะแสดงแอคทิวิตี้ที่ใช้งาน OnTouchListener<br />

ซึ่งได้กำหนดไว้ในเมธอด onCreate() และเมื่อมีการสัมผัสจอภาพ เมธอด onTouch() ก็จะเริ่ม<br />

ตรวจสอบการเคลื่อนไหวที่เกิดขึ้นตามรายละเอียดดังนี้<br />

m ถ้ามีการสัมผัสที่จอด้วยนิ้วที่ 1 สถานะการสัมผัสจะแสดงค่าเป็นการลาก และตำแหน่งที่<br />

สัมผัสก็จะถูกเก็บไว้ในระบบ<br />

m ถ้ามีการสัมผัสที่จอภาพด้วยนิ้วที่ 2 ในขณะที่นิ้วที่หนึ่งยังคงสัมผัสอยู่ ระบบจะคำนวณ<br />

ระยะห่างระหว่างนิ้วทั้งสอง และถ้าระยะห่างมีค่ามากกว่าที่กำหนดไว้ (ในที่นี้กำหนดไว้ที่<br />

50 พิกเซล) สถานะการสัมผัสจะแสดงถึงการย่อขยายรูปภาพ ซึ่งระบบจะเก็บค่าระยะ<br />

ห่างและจุดกึ่งกลางของระยะห่างทั้ง 2 เอาไว้<br />

m ถ้ามีการเคลื่อนไหวของนิ้วที่สัมผัสอยู่ทั้ง 2 นิ้ว อาจเป็นนิ้วใดนิ้วหนึ่ง หรือทั้ง 2 นิ้ว<br />

พร้อมๆ กัน สถานะการสัมผัสจะแสดงค่าเป็นการทำงานแบบมัลติทัช<br />

m ถ้าปล่อยนิ้วทั้งหมดที่สัมผัสจอภาพ สถานะการสัมผัสก็จะแสดงค่าว่าไม่มีการเคลื่อนไหว<br />

ชุดคำสั่งที่ 5.13 src/com/cookbook/multitouch/MultiTouch.java<br />

package com.cookbook.multitouch;<br />

import android.app.Activity;<br />

import android.graphics.Matrix;<br />

import android.os.Bundle;<br />

import android.util.FloatMath;<br />

import android.view.MotionEvent;<br />

import android.view.View;<br />

import android.view.View.OnTouchListener;<br />

import android.widget.ImageView;

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

Saved successfully!

Ooh no, something went wrong!