Android wrap_contentとmatch_parentの使い方

Androidアプリ開発において、レイアウトの横幅と縦幅を設定する際に出てくる
「wrap_content」と「match_parent」

今回は、この「wrap_content」と「match_parent」を取り上げてみたいと思います。

wrap_contentとは

wrap_contentを指定した場合、
適度なサイズで表示してくれます。
ButtonやTextViewなどのViewでwrap_contentを指定した場合は、
View内に表示される文字の長さでサイズが変化します。

match_parentとは

match_parentを指定した場合、
表示可能な領域ぴったりに合わせたサイズで表示されます。
仮に、横200px、縦300pxの領域にViewを配置し、
縦横ともにmatch_parentを指定すると、
そのViewは200 × 300 のサイズで表示されます。(実際には隙間があるのでもう少し小さいですが。)

wrap_contentとmatch_parentを使ってみる

言葉で説明するよりも、実際にどう表示されるかを見たほうが分かりやすいと思いますので
いくつかのパターンで実際に表示してみましょう。

LinearLayoutを定義し、内部にいくつかのButtonを配置して、動きを確認してみます。
※Buttonの変化がが分かりやすいように、LinearLayoutでは、layout_width、layout_heightにmatch_parentを設定します。

【パターン1】

BunttonのViewを1つだけ配置し、layout_width、layout_heightともに、wrap_contentを設定します。

001

【パターン2】

layout_widthにmatch_parentを設定します。

002

【パターン3】

layout_heightにmatch_parentを設定します。

003

【パターン4】

layout_width、layout_heightともに、match_parentを設定します。

004

【パターン5】

ButtonのViewを3つ表示してみます。
まずは、layout_width、layout_heightともに、wrap_contentを設定します。

005

【パターン6】

縦に表示してみます。
LinearLayoutの横並びから縦並びに変更します。
(horizontal → vertical)

006

【パターン7】

各Buttonのlayout_widthにmatch_parentを設定します。

007

【パターン8】

各Buttonのlayout_heightにmatch_parentを設定します。
LinearLayoutは横並び(horizontal)を設定します。

008

まとめ

「wrap_content」と「match_parent」を設定することで、自動で大きさを設定してくれるため
どんな画面の大きさの端末にも対応することが可能になります。

android:layout_width=”100dp”
android:layout_height=”100dp”

というように、実際の大きさを指定することも可能です。
しかし、どんな端末でも(スマホでもタブレットでも)同じ大きさで表示されます。

実際の大きさを指定するか、「wrap_content」や「match_parent」を指定するかは、
どんな画面にしたいかによって、使い分けていく必要があります。

また、「wrap_content」や「match_parent」は、「layout_weight」と組み合わせることによって
さらに繊細な設定を行うことが可能になります。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする