我试图在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轴移动时为正值 .