[android]代码库
public void onSensorChanged(int sensor, float[] values) {
synchronized (this) {
if (sensor == SensorManager.SENSOR_ORIENTATION) {
Log.d(TAG, "onSensorChanged: " + sensor + ", x: " + values[0]
+ ", y: " + values[1] + ", z: " + values[2]);
// OrientText.setText("--- NESW ---");
if (Math.abs(values[0] - DegressQuondam) < 1)
return;
switch ((int) values[0]) {
case 0: // North 北
OrientText.setText("正北");
break;
case 90: // East 东
OrientText.setText("正东");
break;
case 180: // South 南
OrientText.setText("正南");
break;
case 270: // West 西
OrientText.setText("正西");
break;
default: {
int v = (int) values[0];
if (v > 0 && v < 90) {
OrientText.setText("北偏东" + v);
}
if (v > 90 && v < 180) {
v = 180 - v;
OrientText.setText("南偏东" + v);
}
if (v > 180 && v < 270) {
v = v - 180;
OrientText.setText("南偏西" + v);
}
if (v > 270 && v < 360) {
v = 360 - v;
OrientText.setText("北偏西" + v);
}
}
}
((TextView) findViewById(R.id.OrientValue)).setText(String
.valueOf(values[0]));
if (DegressQuondam != -values[0])
AniRotateImage(-values[0]);
}
// if (sensor == SensorManager.SENSOR_ACCELEROMETER) { // //}
}
}
public void onAccuracyChanged(int sensor, int accuracy) {
Log.d(TAG, "onAccuracyChanged: " + sensor + ", accuracy: " + accuracy);
}