Androidのレイアウトファイルにおけるwrap_contentと0dpの違い

Android のレイアウトファイルでコントロールの属性を設定する際によく使われる 2 つの値は、wrap_content と 0dp です。

「wrap_content」は、そのコンテンツに応じコントロールのサイズを自動調整することを示します。例:TextViewに「wrap_content」を設定すると、テキスト内容の長さに応じて幅が自動調整されます。同様に、ImageViewに「wrap_content」を設定すると、画像の実寸に応じて幅と高さが自動調整されます。ただし、そのコントロールは親レイアウトの制約によってもサイズが制限される場合があります。

0dp(マッチ制約とも言う)を使えば、コントロールの大きさは制約条件に応じて決定されます。一般的にConstraintLayoutレイアウトを使用するときは、0dpを使って水平方向または垂直方向においてコントロールがその利用可能なスペースを満たすように指示できます。コントロールの左右境界または上下境界を親レイアウトの対応する境界に接続する制約条件を設定することで、コントロールが対応する方向において利用可能なスペースを満たすように確保できます。

要するに、wrap_contentはコンテンツに合わせて自動でコントロールサイズが調整されることを示し、一方で0dpはコントロールサイズが制約条件によって決まることを示します。

bannerAds