標籤:vertica register sum nbsp cli ott 管理器 delay 好的
Android開發之方向感應器的使用 (2011-10-13 20:56:05)
轉載▼
| 標籤: android 感應器 方向 指南針 雜談 |
分類: 3GAndroid學習筆記 |
Android中的方向感應器在生活中是一個很好的應用,典型的例子是指南針的使用,我們先來簡單介紹一下感應器中三個參數x,y,z的含義,以一幅圖來說明。
圖 1 補充說明:圖中的座標軸x,y,z和感應器中的X,Y,Z沒有任何聯絡!如所示,綠色部分表示一個手機,帶有小圈那一頭是手機頭部感應器中的X:如所示,規定X正半軸為北,手機頭部指向OF方向,此時X的值為0,如果手機頭部指向OG方向,此時X值為90,指向OH方向,X值為180,指向OE,X值為270
感應器中的Y:現在我們將手機沿著BC軸慢慢向上抬起,即手機頭部不動,尾部慢慢向上翹起來,直到AD跑到BC右邊並落在XOY平面上,Y的值將從0~180之間變動,如果手機沿著AD軸慢慢向上抬起,即手機尾部不懂,直到BC跑到AD左邊並且落在XOY平面上,Y的值將從0~-180之間變動,這就是方向感應器中Y的含義。
感應器中的Z:現在我們將手機沿著AB軸慢慢向上抬起,即手機左邊框不動,右邊框慢慢向上翹起來,直到CD跑到AB右邊並落在XOY平面上,Z的值將從0~180之間變動,如果手機沿著CD軸慢慢向上抬起,即手機右邊框不動,直到AB跑到CD左邊並且落在XOY平面上,Z的值將從0~-180之間變動,這就是方向感應器中發Z的含義。
瞭解了方向感應器中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_ORIENTATION){//x表示手機指向的方位,0表示北,90表示東,180表示南,270表示西float x = event.values[SensorManager.DATA_X];float y = event.values[SensorManager.DATA_Y];float z = event.values[SensorManager.DATA_Z];//tv_orientation是介面上的一個TextView標籤,不再贅述tv_orientation.setText("Orientation:"+x+","+y+","+z);}}
我們在onResume方法中建立一個方向感應器,並向系統註冊監聽器protected void onResume() { Sensor sensor_orientation=sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION); sensorManager.registerListener(mySensorEventListener,sensor_orientation, SensorManager.SENSOR_DELAY_UI);super.onResume();}最後我們在onPause()中登出所有感應器的監聽,釋放方向感應器資源!protected void onPause() {//登出所有感應器的監聽sensorManager.unregisterListener(mySensorEventListener);super.onPause();}
到此,有關方向感應器的介紹完畢!
有關本課程的Eclipse工程檔案源碼,點此下載
來源: http://blog.sina.com.cn/s/blog_5a48dd2d0100u4lx.html
null
Android開發之方向感應器的使用? (2011-10-13 20:56:05)轉載▼