参考网上的资料,做了个指南针应用玩玩。
步骤:
1.获得 SensorManager。
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
2.注册监听器
mSensorManager.registerListener(mSensorEventListener,
mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
SensorManager.SENSOR_DELAY_GAME);
3.实现监听器
SensorEventListener mSensorEventListener = new SensorEventListener() { @Override public void onSensorChanged(SensorEvent event) { // 获取绕Z轴转过的角度 float degree = event.values[0]; // 创建旋转动画(反向转过degree度) RotateAnimation ra = new RotateAnimation(currentDegree, -degree, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); // 设置动画的持续时间 ra.setDuration(200); // 设置动画结束后的保留状态 ra.setFillAfter(true); // 启动动画 image.startAnimation(ra); currentDegree = -degree; } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub } };
4.释放资源,取消注册监听器
// 取消注册
mSensorManager.unregisterListener(mSensorEventListener);
-----------------
代码下载
参考:
http://blog.csdn.net/u010142437/article/details/9387181
http://blog.csdn.net/wang6279026/article/details/8231755