1. 禁止屏幕旋转并横屏:
<activity android:name=".ClickReadActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="landscape">
</activity>
2. 在 android 中若要通过程序改变屏幕显示的方向,必须覆盖 setRequestedOrientation() 方法,若要获得屏幕显示的方向,则需要调用 getRequestedOrientation() 方法。
首先需要在 AndroidManifest.xml 中配置 Android:screenOrientation 属性。 ( 通过 getRequestedOrientation() 的值是否为 -1 可以判断是不是添加了该配置 )
<activity android:name=".ClickReadActivity"
android:screenOrientation="landscape">
</activity>
然后重写方法:
public void setRequestedOrientation(int requestedOrientation){
switch(requestedOrientation){
case ( ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE ):// 横屏
break;
case ( ActivityInfo.SCREEN_ORIENTATION_PORTRAIT ):// 竖屏
break;
}
super.setRequestedOrientation(requestedOrientation);
}
public int getRequestedOrientation(){// 重写此方法可以获得目前屏幕方向
return super.getRequestedOrientation();
}
然后调用 setRequestedOrientation(int requestedOrientation) 方法,可实现改变屏幕方向。
3. 屏幕方向改变时,会调用 onConfigurationChanged() 方法。 (onConfigurationChanged() 方法是当系统发生系统设置改变之后所触发的事件,可捕捉屏幕设置更改事件、隐藏或打开键盘等 ) 。因此,要在屏幕方向改变后做界面的重绘等操作,可以重写 onConfigurationChanged() 方法。
首先需要在 AndroidManifest.xml 中设置 Android:screenOrientation 属性,并设置权限:
<activity android:name=".ClickReadActivity"
android:screenOrientation="landscape">
</activity>
<uses-permission android:name="android.permisson.CHANGE_CONFIGURATION"/>
然后重写方法:
public void onConfigurationChanged(Configuration newConfig){
if( newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE ){
}
if( newConfig.orientation==Configuration.ORIENTATION_PORTRAIT ){
}
if( newConfig.KeyboardHidden==Configuration.KEYBOARDHIDDEN_NO ){
}
}