Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
}<br />
if (bouncedX || bouncedY) {<br />
Vibrator v = vibratorRef.get();<br />
if (v != null) {<br />
v.vibrate(20L);<br />
}<br />
}<br />
}<br />
public void setVibrator(Vibrator v) {<br />
vibratorRef.set(v);<br />
}<br />
เขียนโค้ดกำหนดการทำงานในคลาสหลัก<br />
เนื่องจากในบทนี้จะเป็นการใช้งาน Sensor ที่เกี่ยวข้องกับความเร่ง โดยมีการตรวจสอบค่าความเร่ง<br />
จากแนวแกน x และแกน y ซึ่งจะมีการแปลงค่าเป็นความเร็ว จากนั้นก็นำค่าที่ได้ไปคำนวณหาค่าตำแหน่ง<br />
อีกครั้งหนึ่ง และในกรณีนี้ผู้เขียนเรียกใช้คลาส SensorManager เข้ามาช่วยในการจัดการกับ Sensor<br />
สำหรับการพัฒนาคลาส SensorListener นั้น ผู้เขียนจะ Override เมธอดต่างๆ ที่เกี่ยวข้องดังต่อไปนี้<br />
• onAccuracyChanged(int sensor, int accuracy) เมธอดนี้จะถูกเรียกใช้งานเมื่อค่าความแม่นยำมี<br />
การเปลี่ยนแปลง<br />
• onSensorChanged(int sensor, float[] values) ในกรณีที่ค่า Sensor มีการเปลี่ยนแปลง เมธอดนี้<br />
ก็จะถูกเรียกใช้งาน ในที่นี้เราจะใช้ Sensor ความเร่ง โดยกำหนดให้ values เป็นตัวแปรอาร์เรย์<br />
(Array) เช่น values[0], values[1] และ values[2] ที่ใช้สำหรับเก็บค่าความเร่งตามแนวแกน x, y<br />
และ z ตามลำดับ<br />
ดังนั้น ให้ผู้อ่านเขียนโค้ดกำหนดการทำงานของคลาส SimpleBouncingBallActivity ดังนี้<br />
package com.kkucs.com;<br />
import static android.hardware.SensorManager.DATA_X;<br />
import static android.hardware.SensorManager.DATA_Y;<br />
import static android.hardware.SensorManager.SENSOR_ACCELEROMETER;<br />
import static android.hardware.SensorManager.SENSOR_DELAY_GAME;<br />
เพิ่มคลาส<br />
import java.util.concurrent.TimeUnit;<br />
import android.app.Activity;<br />
import android.content.Context;<br />
import android.content.pm.ActivityInfo;<br />
import android.graphics.Canvas;<br />
import android.graphics.Color;<br />
import android.graphics.Paint;<br />
import android.hardware.SensorListener;<br />
import android.hardware.SensorManager;<br />
import android.os.Bundle;<br />
import android.os.Vibrator;<br />
import android.view.SurfaceHolder;<br />
import android.view.SurfaceView;<br />
บทที ่ 13 การใช้งานเซนเซอร์ (Sensor) ใน <strong>Android</strong> 277