概述
現在一般android手機裡都有 磁場傳感器,它能檢測到方向。我們做個指南針應用玩玩。

思路
1.獲得傳感器服務
2.注冊指定類型的傳感器的監聽事件
3.在監聽事件獲得消息後,調整我們試圖的指南針(一般就是個圖檔)的方向。
實作
1.獲得 SensorManager。
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
複制
2.注冊監聽器
mSensorManager.registerListener(mSensorEventListener,
mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
SensorManager.SENSOR_DELAY_GAME);
複制
3.實作監聽器
SensorEventListener mSensorEventListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
// 擷取繞Z軸轉過的角度
float degree = event.values[0];
// 建立旋轉動畫(反向轉過degree度)
RotateAnimation ra = new RotateAnimation(currentDegree, -degree,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
// 設定動畫的持續時間
ra.setDuration(200);
// 設定動畫結束後的保留狀态
ra.setFillAfter(true);
// 啟動動畫
image.startAnimation(ra);
currentDegree = -degree;
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
};
複制
4.釋放資源,取消注冊監聽器
// 取消注冊
mSensorManager.unregisterListener(mSensorEventListener);
複制
代碼下載下傳
參考:
http://blog.csdn.net/u010142437/article/details/9387181
http://blog.csdn.net/wang6279026/article/details/8231755