Android開(kāi)發(fā)(27) 做個(gè)指南針應(yīng)用

概述

現(xiàn)在一般android手機(jī)里都有 磁場(chǎng)傳感器,它能檢測(cè)到方向。我們做個(gè)指南針應(yīng)用玩玩。


思路

1.獲得傳感器服務(wù)
2.注冊(cè)指定類型的傳感器的監(jiān)聽(tīng)事件
3.在監(jiān)聽(tīng)事件獲得消息后,調(diào)整我們?cè)噲D的指南針(一般就是個(gè)圖片)的方向。

實(shí)現(xiàn)

1.獲得 SensorManager。

    mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);  

2.注冊(cè)監(jiān)聽(tīng)器

    mSensorManager.registerListener(mSensorEventListener,  
            mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),  
            SensorManager.SENSOR_DELAY_GAME);  

3.實(shí)現(xiàn)監(jiān)聽(tīng)器

SensorEventListener mSensorEventListener = new SensorEventListener() {
        
        @Override
        public void onSensorChanged(SensorEvent event) {
            // 獲取繞Z軸轉(zhuǎn)過(guò)的角度  
            float degree = event.values[0];  
            // 創(chuàng)建旋轉(zhuǎn)動(dòng)畫(huà)(反向轉(zhuǎn)過(guò)degree度)  
            RotateAnimation ra = new RotateAnimation(currentDegree, -degree,  
                    Animation.RELATIVE_TO_SELF, 0.5f,  
                    Animation.RELATIVE_TO_SELF, 0.5f);  
            // 設(shè)置動(dòng)畫(huà)的持續(xù)時(shí)間  
            ra.setDuration(200);  
            // 設(shè)置動(dòng)畫(huà)結(jié)束后的保留狀態(tài)  
            ra.setFillAfter(true);  
            // 啟動(dòng)動(dòng)畫(huà)  
            image.startAnimation(ra);  
            currentDegree = -degree; 
        }
        
        @Override
        public void onAccuracyChanged(Sensor sensor, int accuracy) {
            // TODO Auto-generated method stub
            
        }
    };

4.釋放資源,取消注冊(cè)監(jiān)聽(tīng)器

// 取消注冊(cè) 
mSensorManager.unregisterListener(mSensorEventListener);

代碼下載

參考:

http://blog.csdn.net/u010142437/article/details/9387181
http://blog.csdn.net/wang6279026/article/details/8231755

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容