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); }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/11079.html