私の携帯電話のジャイロからデータを取得しようとしています。 これまでの角度は、私の携帯電話を動かす角度によって変わってきます。しかしandroidの方位センサーを調整する方法
、例えば方位角は、私はそれが私が開始位置からではなく、北方向からカウントを開始したい - >私は私の質問があり、それは0
から始めたい:どのようにすることができます私はジャイロから取得した最初のデータを保存するので、電話機を移動すると残りのデータから「マイナス」を行うことができますか? コードは次のようになります。
rotationx.setText(" " +event.values[0]-FirstAzimuthValue);
ありがとう:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sm=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
rotationvector=sm.getDefaultSensor(Sensor.TYPE_ORIENTATION);
sm.registerListener(this,rotationvector,SensorManager.SENSOR_DELAY_NORMAL);
rotationx=(TextView)findViewById(R.id.rotationx);
rotationy=(TextView)findViewById(R.id.rotationy);
rotationz=(TextView)findViewById(R.id.rotationz);
}
@Override
public void onSensorChanged(SensorEvent event) {
rotationx.setText(" " +event.values[0]);
rotationy.setText(" " +event.values[1]);
rotationz.setText(" " +event.values[2]);
}
私がやりたい事はのようなものです!
新しいコード:
private boolean isFirstMeasure = true;
private float FirstAzimuthValue = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sm=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
rotationvector=sm.getDefaultSensor(Sensor.TYPE_ORIENTATION);
sm.registerListener(this,rotationvector,SensorManager.SENSOR_DELAY_NORMAL);
rotationx=(TextView)findViewById(R.id.rotationx);
rotationy=(TextView)findViewById(R.id.rotationy);
rotationz=(TextView)findViewById(R.id.rotationz);
}
@Override
public void onSensorChanged(SensorEvent event) {
if (isFirstMeasure){
FirstAzimuthValue - event.values[0]; //error this line
isFirstMeasure = false;
}
rotationx.setText(" " +(event.values[0] - FirstAzimuthValue));
rotationy.setText(" " +event.values[1]);
rotationz.setText(" " +event.values[2]);
}
ねえのonCreate関数の角度をチェックして、firstazimuthvalueという名前の変数に保存し、その後、あなたが好きそれを行う.. – DAVIDBALAS1