20.11.2016 Views

Android App Development ฉบับสมบูรณ์

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

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

Saved successfully!

Ooh no, something went wrong!