Android进价篇-重力感应
Android中为了实现一些特定的效应,必须使用重力感应,尤其是在游戏当中。
在Android中管理重力感应的是SensorManager。
@Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.main); mRegisterSensor = false;//控制开关 mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);//获取到Sensor服务 } @Override protected void onPause() { // TODO Auto-generated method stub //卸载 if(mRegisterSensor){ mSensorManager.unregisterListener(this); mRegisterSensor = false; } super.onPause(); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); //抓取所有的Sensor,进行注册 List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ORIENTATION); if(sensors.size()>0){ Sensor sensor = sensors.get(0); mRegisterSensor = mSensorManager.registerListener(this, sensor,SensorManager.SENSOR_DELAY_FASTEST); } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub } @Override public void onSensorChanged(SensorEvent event) { // TODO Auto-generated method stub /** * x,y,z表示手机在x,y,z轴的倾斜度 * google sdk中将手机进行三维坐标划分 * 比如y=-180 表示手机翻转放在水平面上 */ if(event.sensor.getType() == Sensor.TYPE_ORIENTATION){ float x = event.values[SensorManager.DATA_X]; float y = event.values[SensorManager.DATA_Y]; float z = event.values[SensorManager.DATA_Z]; } }