Android中方向感測器的用法,製作簡易指南針

2021-06-28 11:46:33 字數 1509 閱讀 7344

專案效果

專案結構

activity_main.xm 核

l心**:

mainactivity

public class mainactivity extends activity

private sensoreventlistener listener=new sensoreventlistener() else if(event.sensor.gettype()==sensor.type_magnetic_field)

float r = new float[9];

float values = new float[3];

//將兩個值傳入到getrotationmatrix的方法中就可以得到乙個包含旋轉矩陣的r陣列。

//其中r是乙個長度為9的float陣列,getrotationmatrix方法計算出的旋轉資料就會賦值到這個陣列當中

//第二個引數是乙個用於將地磁向量轉換成重力座標的旋轉矩陣,通常定位null值即可。

//第三,第四個引數分別就是加速度感測器和地磁感測器輸出的values值

sensormanager.getrotationmatrix(r, null, accelerometervalues, magneticvalues);

/*得到r陣列之後,接著就可以呼叫getorientation的方法來計算手機的旋轉資料了。

* values[0]記錄著手機圍繞z軸的旋轉弧度

* values[1]記錄著手機圍繞x軸的旋轉弧度

* values[2]記錄著手機圍繞x軸的旋轉弧度

* 計算出的資料都是以弧度為單位的,因此轉化成角度呼叫math.todegrees(values[0])

* values[0];的取值範圍是-180度到+180度,其中+-180度表示正南方向,0度表示正北方向,

* -90度表示正西方向,90度表示正東方向

* */

sensormanager.getorientation(r, values);

log.e("1", "value[0] is"+math.todegrees(values[0]));

//將計算出來的旋轉角取反,用於旋轉指南針背景圖

float rotatedegree=-(float) math.todegrees(values[0]);

if (math.abs(rotatedegree-lastrotatedegree)>1)

}@override

public void onaccuracychanged(sensor sensor, int accuracy)

};@override

protected void ondestroy()

}}//class

方向感測器

方向感測器是加速度感測器 gsensor 的廉價替代品,能完成gsensor的一些功能。下面根據網上資料介紹其原理。rohm四方向感測器rpi 1031簡介 工作原理 1.通過光學原理實現 內部有發光二極體乙個,光敏接收三極體兩個 另外有一顆圓柱型的遮光物 如圖所示 對應的電路圖如下 2.通過圓柱型...

方向感測器

方向感測器的使用 sensor sensor sensormanager.getdefaultsensor sensor.type orientation 可以通過以上的方法獲取方向感測器,可以安卓早就廢棄了這個感測器型別,雖然 還是有效的,但已經不再推薦這麼寫了。事實上,android獲取手機旋轉...

Android開發之方向感測器的

android開發之方向感測器的使用 東風破 android中的方向感測器在生活中是乙個很好的應用,典型的例子是指南針的使用,我們先來簡單介紹一下感測器中三個引數x,y,z的含義,以一幅圖來說明。圖 1 補充說明 圖中的座標軸x,y,z和感測器中的x,y,z沒有任何聯絡 如上圖所示,綠色部分表示乙個...