在<activity>中添加android:configChanges="orientation|keyboardHidden|screenSize"
@Override
public void onConfigurationChanged(Configuration config) {
try {
super.onConfigurationChanged(config);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(MainActivity.this, "横向", Toast.LENGTH_SHORT)
.show();
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
Toast.makeText(MainActivity.this, "竖屏", Toast.LENGTH_SHORT)
.show();
}
} catch (Exception ex) {
}
}
网上大多都是这种说法。但其中的一部分在activity添加configChanges的时候没有用screenSize这项,所以一直没用执行onConfigurationChanged这个方法,以至于坑我很长的时间
还有另一种方法:
不需要在manifest文件中添加android:configChanges="orientation|keyboardHidden|screenSize"属性(甚至加了之后,根本无效果了),直接在oncreate中添加代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){
Toast.makeText(this, "横屏", Toast.LENGTH_SHORT).show();
}else if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "竖屏", Toast.LENGTH_SHORT).show();
setContentView(R.layout.twat);
}
}
可以再这个里面添加在不同方向上加载不同的XML文件。