水平スクロールビューが画面の全幅を占め、その子ビューが中央に配置されるようにします。これまでのところ、私は子供たちをラップするだけで終わり、すべてが整列されたままになっています。私の見解は次のようになります。
<HorizontalScrollView
android:id="@+id/mainMenu"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="#CD000000"
android:fillViewport="true"
android:gravity="center_horizontal"
android:scrollbars="none" >
</HorizontalScrollView>
その中で、次のようなものを膨らませます。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/mode_panzoom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="5dip"
android:paddingLeft="5dip"
android:paddingRight="5dip"
android:minWidth="75dip"
android:gravity="center_horizontal">
<ImageView
android:src="@drawable/ic_pan"
android:layout_width="25dip"
android:layout_height="wrap_content"
android:text="@string/mode_panzoom"
android:scaleType="centerInside"/>
</LinearLayout>
<LinearLayout
android:id="@+id/mode_annotate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="5dip"
android:paddingLeft="5dip"
android:paddingRight="5dip"
android:minWidth="75dip"
android:gravity="center_horizontal">
<ImageView
android:src="@drawable/ic_annotate"
android:layout_width="25dip"
android:layout_height="wrap_content"
android:text="@string/mode_panzoom"/>
</LinearLayout>
<LinearLayout
android:id="@+id/mode_measure"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="5dip"
android:paddingLeft="5dip"
android:paddingRight="5dip"
android:minWidth="75dip"
android:gravity="center_horizontal">
<ImageView
android:src="@drawable/ic_measure"
android:layout_width="25dip"
android:layout_height="wrap_content"
android:text="@string/mode_panzoom"
android:gravity="center"/>
</LinearLayout>
fillviewport は何もしないようで、重力を適用しても効果がないように見えます。これは、fill_parent を幅として設定しているにもかかわらず、コンテンツがラッピングされているためと思われます。