天天看點

Android開發(27) 做個指南針應用概述思路實作參考:

概述

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

Android開發(27) 做個指南針應用概述思路實作參考:

思路

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