Android開發之重力感應器

來源:互聯網
上載者:User

標籤:android   http   io   ar   使用   sp   strong   div   on   

重力感應器與方向感應器的開發步驟類似,只要理清了期中的x,y,z的值之後就可以根據他們的變化來進行編程了,推薦學習Android應用開發入門教程

首先來看一副圖

假設當地的重力加速度值為g
當手機正面朝上的時候,z的值為q,反面朝上的時候,z的值為-g
當手機右側面朝上的時候,x的值為g,右側面朝上的時候,x的值為-g
當手機上側面朝上的時候,y的值為g,右側面朝上的時候,y的值為-g
瞭解了重力感應器中X,Y,Z的含義之後下面我們就開始學習如何使用
首先我們建立一個感應器管理器和一個感應器監聽器,管理器用來管理感應器以及建立各種各樣的感應器,監聽器用來監視感應器的變化並且進行相應的操作
private SensorManager sensorManager;
private MySensorEventListener mySensorEventListener;
mySensorEventListener= new MySensorEventListener();//這個監聽器當然是我們自己定義的,在重力感     應器感應到手機位置有變化的時候,我們可以採取相應的操作,這裡緊緊是將x,y,z的值列印出來
private final class MySensorEventListener implements  SensorEventListener{

@Override
//可以得到感應器即時測量出來的變化值
public void onSensorChanged(SensorEvent event) {
//重力感應器
if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){
float x = event.values[SensorManager.DATA_X];
float y = event.values[SensorManager.DATA_Y];
float z = event.values[SensorManager.DATA_Z];
//tv_accelerometer是介面上的一個TextView標籤,不再贅述
tv_orientation.setText("Orientation:"+x+","+y+","+z);
}
}

我們在onResume方法中建立重力感應器,並向系統註冊監聽器
protected void onResume() {
Sensor sensor_accelerometer=sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorManager.registerListener(mySensorEventListener,sensor_accelerometer,   SensorManager.SENSOR_DELAY_UI);

super.onResume();
}
最後我們在onPause()中登出所有感應器的監聽,釋放重力感應器資源!
protected void onPause() {
/登出所有感應器的監聽
sensorManager.unregisterListener(mySensorEventListener);
super.onPause();
}

以上就是有關重力感應器的內容,想學習更多Android應用開發相關知識,請登入e良師益友網

Android開發之重力感應器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.