我想知道如何根据JAVA中的设备Orientation改变我的LinearLayout方向,我发现如何通过XML方式使用布局和布局 - 但我没有找到如何通过Java来做到这一点方式。
非常感谢。
答案 0 :(得分:6)
参见this它描述了如何检测方向已更改,然后在java中更改方向
在onCreate()
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
linearlayout=........;
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
// landscape
linearlayout.setOrientation(LinearLayout.HORIZONTAL);
}
else {
// portrait
linearlayout.setOrientation(LinearLayout.VERTICAL);
}
....
}
并在onConfigurationChanged()
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
// landscape
linearlayout.setOrientation(LinearLayout.HORIZONTAL);
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
// portrait
linearlayout.setOrientation(LinearLayout.VERTICAL);
}
}
答案 1 :(得分:1)
在onCreate()中输入以下代码:
int currentOrientation = getResources().getConfiguration().orientation;
if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE) {
// Landscape
linearlayout.setOrientation(LinearLayout.HORIZONTAL);
}
else {
// Portrait
linearlayout.setOrientation(LinearLayout.VERTICAL);
}