Activity:
在程序启动时,先获得当前屏幕的状态,并设置相应的布局文件。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); //注意顺序
Configuration newConfig=getResources().getConfiguration();//获取当前应用配置
if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){
//横屏
setContentView(R.layout.main_h);
}else{
//竖屏
setContentView(R.layout.main);
}
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.title); //注意顺序
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
...
在程序运行时,当屏幕状态发生改变时,更改布局文件。
//重写 onConfigurationChanged方法,防止转屏时Activity被销毁重建
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
LinearLayout mainL=(LinearLayout)findViewById(R.id.mainLL);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
//横屏
setContentView(R.layout.main_h);
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
//竖屏
setContentView(R.layout.main);
}
}
最后修改一下AndroidManifest.xml中Activity的配置,给目标Activity加上下面这条属性:
android:configChanges="orientation|keyboardHidden"