/横竖屏///
private OrientationEventListener mOrientationListener;//screen orientation listener
private final void startOrientationChangeListener()
{
mOrientationListener = new OrientationEventListener(this) {
@Override
public void onOrientationChanged(int rotation) {
// TODO Auto-generated method stub
if(rotation == OrientationEventListener.ORIENTATION_UNKNOWN) {
return; //手机平放时,检测不到有效的角度
}
//只检测是否有四个角度的改变
if( rotation > 350 || rotation< 10 ) { //0度
rotation = 0;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
else if( rotation > 80 &&rotation < 100 ) { //90度
rotation= 90;
//setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
else if( rotation > 170 &&rotation < 190 ) { //180度
rotation= 180;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
}
else if( rotation > 260 &&rotation < 280 ) { //270度
rotation= 270;
//setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
}
else {
return;
}
Log.d("rotation","rotation"+rotation);
}
};
mOrientationListener.enable();
}
最后在onCreate里加入startOrientationChangeListener();