June 3, 2012

LinearLayoutによるViewサイズ指定と配置

LinearLayoutによるViewサイズの指定方法です。Buttonを使っていろいろな例を示します。

例)コンテンツのサイズと同じにする場合、wrap_contentを指定します。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/name" />
</LinearLayout>


例)コンテンツを画面幅と同じにする場合、match_parentを指定します。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/name" />
</LinearLayout>


例)複数のコンテンツを均等な幅で並べる場合、サイズを0dipにしてlayout_weightでサイズの比率を指定します。なぜサイズを0dipにするかというとlayout_weightは余白に対して比率を指定する機能のため、サイズを0にしてコンテンツに対するサイズの比率になるようにしています。layout_weightの値は整数でも小数点でも指定できます。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
    <Button
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/name" />
    <Button
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/name" />
    <Button
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/name" />
</LinearLayout>


例)コンテンツを中央に配置する場合、layout_gravityを指定します。LinearLayoutの方向がverticalであれば左端、中央、右端、horizontalであれば上端、中央、下端を指定できます。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/name" />
</LinearLayout>



例)コンテンツのサイズを絶対値(dip)で指定する場合、dipで指定します。またpaddingやmarginを指定することもできます。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <Button
        android:layout_width="180dip"
        android:padding="20dip"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/name" />
</LinearLayout>


参考:Android Developers:LinearLayout

No comments:

Post a Comment