ドゥアイネットのプログラマー、湯川が開発日記を綴ります。

CALENDAR
S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  
<< January 2019 >>
ARCHIVES
CATEGORIES
<< eclipse4.4 | main | アイコンファイルの一括リサイズ >>
FrameLayoutでの位置指定

androidでFrameLayout上に表示しているViewの位置指定で以下のロジックを書きました。

FrameLayout.LayoutParams fparam = new FrameLayout.LayoutParams(200, 150);
fparam.setMargins(100, 100, 0, 0);
target.setLayoutParams(fparam);

サイズを指定して、MarginsでX、Yの表示位置を指定しています。
スマホ端末では予定通り、setMarginsで指定した位置に表示されました。
念のためシュミレーターでタブレット表示したところsetMarginsがまったく適用されていません。。

調べたところ、FrameLayout.LayoutParamsするときは「gravity」も指定する必要があるとのこと。
今回は、「gravity」指定はしないので「Gravity.NO_GRAVITY」をセットしました。

FrameLayout.LayoutParams fparam = new FrameLayout.LayoutParams(200, 150);
fparam.setMargins(100, 100, 0, 0);
fparam.gravity = Gravity.NO_GRAVITY; 
target.setLayoutParams(fparam);

これで実行したらスマホ端末でも、タブレットでも正しく位置指定できました!
| Android | 10:18 | comments(0) | - |
コメント
コメントする