我是android新手。我正在开发一个应用程序,可以使用相机测量任何对象的高度和宽度。对于这个应用程序,我使用角度来计算距离。 但我的问题是我没有得到0到180范围内的角度。而是我在0到90的范围内获得角度。在90度之后它开始给出从90到0的角度。 所以PLZ帮助我。
mSM = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mAccelerometer = mSM.getDefaultSensor(Sensor.TYPE_ORIENTATION);
public void onSensorChanged(SensorEvent event) {
//int sensor = event.type;
float[] values = event.values;
int i,flag = 0;
StringBuffer str=new StringBuffer();
// do something with the sensor data
TextView text = (TextView) findViewById(R.id.my_text);
float[] R = new float[9]; // rotation matrix
float[] magnetic = new float[3];
float[] orientation = new float[3];
float[] I = new float[3];
magnetic[0]=0;
magnetic[1]=1;
magnetic[2]=0;
str.append("From Sensor :\n");
for(i=0;i<values.length; i++) {
str.append(values[i]);
str.append(", ");
}
SensorManager.getRotationMatrix(R, I, values, magnetic);
SensorManager.getOrientation(R, orientation);
str.append("\n\nGives :\n");
if(orientation[1]==0.0)
flag = 1;
for(i=0;i<orientation.length; i++) {
str.append(Math.toDegrees(orientation[i]));
str.append(", ");
}
str.append(" flag = "+flag);
text.setText(str);
}