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); 
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/11079.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论