1

画面の上部中央にある画像と、alignParentRight のボタンがあります。そして、今のところ下の画像に設定します。私が欲しいのは、横向きの場合、画像はそれほど長くないので、ボタンを一番上に移動したいということです。これを達成する方法はありますか?ありがとう

縦表示

 _________________
|[  <--Image-->  ]|
|         [Button]|

ランドスケープ ビュー

 _________________________________
|     [  <--Image-->  ]           |
|                         [Button]|
|                                 |
4

2 に答える 2

1

画面の向きに応じて別のレイアウトを使用するように切り替えたくない場合は、次のようにすることができます。

画面の向きに注意してください。現時点では、アプリがそれをどのように処理するかわかりません。アプリを再起動しますか (デフォルトの動作)、またはオーバーライドして防止しますonConfigChangedか?

どちらの場合でも、これを使用して画面の向きを取得できます。

WindowManager windowManager =  (WindowManager) getSystemService(WINDOW_SERVICE);
windowManager.getDefaultDisplay().getOrientation();

画面の向きがわかったので、ボタンのレイアウトをプログラムで設定できます。の代わりにalignParentRight、 を使用していると仮定しalignRightOfて、 に対して相対的に使用できます。ImageViewRelativeLayout

プログラムでレイアウトを設定するには (ソースはこちらを参照):

RelativeLayout.Layoutparams params = (RelativeLayout.LayoutParams)button.getLayoutParams();
params.addRule(RelativeLayout.RIGHT_OF, R.id.id_to_be_left_of);

button.setLayoutParams(params); //causes layout update
于 2012-06-09T00:59:54.527 に答える
0

横向きモードと縦向きモードで別々のレイアウトを作成する必要があります。これを参照してください。

于 2012-06-09T00:36:29.413 に答える