首先,获取方向传感器(参照http://developer.android.com/reference/android/hardware/SensorManager.html):
publicclassSensorActivityextendsActivity,implementsSensorEventListener{
privatefinalSensorManager mSensorManager;
privatefinalSensor mOrientationSensor;
publicSensorActivity(){
mSensorManager =(SensorManager)getSystemService(SENSOR_SERVICE);
mOrientationSensor= mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
}
protectedvoid onResume(){
super.onResume();
mSensorManager.registerListener(this, mOrientationSensor,SensorManager.SENSOR_DELAY_NORMAL);
}
protectedvoid onPause(){
super.onPause();
mSensorManager.unregisterListener(this);
}
publicvoid onAccuracyChanged(Sensor sensor,int accuracy){
}
publicvoid onSensorChanged(SensorEventevent){
HandlerSensorChanged(event);
}
}
根据传感器判断手机屏幕方向的变化响应重力感应:
void HandlerSensorChanged(SensorEvent event){
float roll =event.values[2];
if(roll<30){
//屏幕旋转到竖屏;处理之
}
if(roll>60){
//屏幕旋转到横屏;处理之
}
}