Android重力感應器Sensor編程

來源:互聯網
上載者:User
添加當重力變化時的處理函數在建立監聽器時調用的函數 doSomething(x, y, z) 是自己定義的方法。當手機傾斜方向改變時,監聽器會調用該方法。我們要做的,就是填充該方法,用於在重力發生變化時進行我們自己的處理。當 x=y=0 時,手機處於水平放置狀態。當 x=0 並且 y>0 時,手機頂部的水平位置要大於底部,也就是一般電話中時手機所處的狀態。當 x=0 並且 y<0 時,手機頂部的水平位置要小於底部。手機一般很少處於這種狀態。當 y=0 並且 x>0 時,手機右側的水平位置要大於左側,也就是右側被抬起。當 y=0 並且 x<0 時,手機右側的水平位置要小於左側,也就是左側被抬起。當 z=0 時,手機平面與水平面垂直。當 z>0 時,手機螢幕朝上。當 z<0 時,手機螢幕朝下。//1、取得重力感應器Sensor對象//在 Activity 中定義以下成員變數:private SensorManager mManager = null;private Sensor mSensor = null;//以下代碼加入到 onCreate() 方法中:mManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);mSensor = manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);//2、建立監聽器//在 Activity 中定義以下成員變數:private SensorEventListener mListener = null;//以下代碼加入到 onCreate() 方法中:mListener = new SensorEventListener() {public void onAccuracyChanged(Sensor sensor, int accuracy) {}public void onSensorChanged(SensorEvent event) {float x = event.values[SensorManager.DATA_X];float y = event.values[SensorManager.DATA_Y];float z = event.values[SensorManager.DATA_Z];doSomething(x, y, z);}};//3、註冊監聽器//以下代碼加入到 onResume() 方法中:mManager.registerListener(mListener, mSensor, SensorManager.SENSOR_DELAY_GAME);//這裡 SENSOR_DELAY_GAME 還可以是以下常量://SENSOR_DELAY_FASTEST//SENSOR_DELAY_UI//SENSOR_DELAY_NORMAL//4、取消監聽器//以下代碼加入到 onPause() 方法中:mManager.unregisterListener(mListener);
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.