Android中当屏幕横竖屏切换时,Activity的生命周期是重新加载,在AndroidManifest.xml中为Activity设置configChanges属性android:configChanges="orientation|keyboardHidden"
private OnClickListener onClick=new OnClickListener() {
@Override
public void onClick(View v) {
//设置屏幕为横屏
if(v==butLandscrpe){
MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//设置为置屏幕为竖屏
}else{
MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
};
//监听系统设置的更改
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
String message=newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE ? "屏幕设置为:横屏" : "屏幕设置为:竖屏";
showToast(message);
}
在4.0以后需要加上screenSize这个属性,也就是
android:configChanges="keyboardHidden|orientation|screenSize" 或者 android:configChanges="orientation|screenSize"
注:如果项目不需要屏幕切换时可以设置为
1. android:screenOrientation="portrait" 始终以竖屏显示
2. android:screenOrientation="landscape" 始终以横屏显示