2015年4月7日火曜日

[Android] ImageViewを左右の両端に配置する方法

LinearLayoutなどを使って普通にImageView(やButtonなど)を二つ続けて記述すると、layout_gravity属性にそれぞれright、leftを指定しても、左詰めで表示されてしまいます。GridLayoutやTableLayoutを使ってセルを定義して左右の端に表示する方法もありますが、XMLの記述が複雑になりますし、端末の画面サイズによってはImageViewが見えなくなる現象が起きたりします。また、Layoutの上にViewを配置することもLinearLayoutの方がシンプルに実現できます(LinearLayoutのbackgroundに画像をセットして、<LinearLayout>〜</LinearLayout>にViewを置くことで、画像の上にViewを配置できます)。

それで、LinearLayoutで左右の両端にImageViewを表示する方法ですが、空(空文字)のTextViewを二つのImageViewの間に挟むことで実現できます。
ポイントはgravity="center"を持つTextViewが二つのImageViewの間にあって、そのlayout_weightがImageView達のlayout_viewより高く設定されていることです。この設定によって、TextViewが中心に鎮座して最大限に幅をきかせようとするので、結果として二つのImageViewが左右両端に(TextViewにおいやられて)表示されることになります。

0 件のコメント:

コメントを投稿