うさがにっき

読書感想文とプログラムのこと書いてきます

均等なレイアウトを作成する方法

概要

ImageViewなどをGrid上に均等に配置する方法

詳細

GridLayoutやGridViewを使っても一行にImageViewとスペースを均等に配置する方法が見当たらなかったので、実際に実装した時のメモ
LinearLayoutのweightとSpaceを使う

実際に配置するwidgetの間をspaceで埋めることにより、均等にレイアウトできる

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="@dimen/category_icon_size"
        android:orientation="horizontal" >

        <RelativeLayout
            android:layout_width="@dimen/category_icon_size"
            android:layout_height="@dimen/category_icon_size" 
            android:background="@color/blue">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:textColor="@color/main_list_author_color"
                android:textSize="12dp" />
        </RelativeLayout>

        <android.support.v7.widget.Space
            android:layout_width="0dp"
            android:layout_height="@dimen/category_icon_size"
            android:layout_weight="1" />

        <RelativeLayout
            android:layout_width="@dimen/category_icon_size"
            android:layout_height="@dimen/category_icon_size" 
            android:background="@color/blue">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:textColor="@color/main_list_author_color"
                android:textSize="12dp" />
        </RelativeLayout>

        <android.support.v7.widget.Space
            android:layout_width="0dp"
            android:layout_height="@dimen/category_icon_size"
            android:layout_weight="1" />

        <RelativeLayout
            android:layout_width="@dimen/category_icon_size"
            android:layout_height="@dimen/category_icon_size" 
            android:background="@color/blue">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:textColor="@color/main_list_author_color"
                android:textSize="12dp" />
        </RelativeLayout>
    </LinearLayout>