我试图在Android工作室获得陀螺仪传感器结果 . 然后显示指示方向的箭头UI . 我写了这段代码,但有两个问题 .

  • 当我开始玩设备时,没有显示正确的箭头

  • 如何在用户移动手机时刷新该值 .

public class NavigationActivity extends ActionBarActivity implements SensorEventListener {

    private Sensor gyroscope;
    private SensorManager mSensorManager;
    private ImageView go, right, left, back;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_navigation);

        go = (ImageView) findViewById(R.id.nav_go);
        right = (ImageView) findViewById(R.id.nav_right);
        left = (ImageView) findViewById(R.id.nav_left);
        back = (ImageView) findViewById(R.id.nav_back);

        go.setVisibility(View.GONE);
        right.setVisibility(View.GONE);
        left.setVisibility(View.GONE);
        back.setVisibility(View.GONE);

        mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
        gyroscope = (Sensor)mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);}
    @Override
    protected void onResume() {
        super.onResume();
        //Register for sensor update
        mSensorManager.registerListener(this, gyroscope, SensorManager.SENSOR_DELAY_UI);}   
}

这是OnSensorChanged:http://postimg.org/image/4my837rr9/(在上面相同的代码中)
这是用户界面:http://s24.postimg.org/6gfyy2qrp/Stack.png

P.S 1.The default Screen Orientation is "landscape" 2.The Information I build my (azimuth, pitch, and roll) on is according to the following: values [0]:方位角,绕Z轴旋转(0 <=方位角<360) . 0 =北,90 =东,180 =南,270 =西

值[1]:俯仰,绕X轴旋转(-180 <=俯仰<= 180),当z轴向y轴移动时为正值 .

值[2]:滚动,绕Y轴旋转(-90 <=滚动<= 90),当z轴向x轴移动时为正值 .