私はRelativeLayoutを含むScrollViewでかなり複雑なレイアウトを持っています。RelativeLayoutには、ImageViewでいっぱいのTableLayoutが含まれています。約40枚の画像があります。それらはすべてjpegであり、幅は正確に200ピクセルです。
テーブルを3列にレイアウトすると、正常に機能します。しかし、テーブルを2列にレイアウトしようとすると、最初の列には画像が正しく表示されますが、2番目の列では画像が「切り捨てられ」、画像の右端が表示されません。
今のところ、私が思いついたクラッジの回避策は、幅50ピクセル、高さ100ピクセルの長方形である「フィラー画像」を作成することでした。テーブルの最初の行の3番目の列に貼り付けました。これにより、これは3行のテーブルになり、他の2つの列は両方とも読み取れるように十分に縮小されます。しかし、もっと良い方法があるはずだと思われます。
これが私のxmlのスニペットです(ここでは最初の行にフィラー画像が含まれています。
<TableLayout
android:id="@+id/pls_table"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@id/pl_title"
android:shrinkColumns="*"
android:stretchColumns="*" >
<TableRow android:layout_height="wrap_content" >
<ImageView
android:id="@+id/pls_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:clickable="true"
android:onClick="tsdetail2"
android:scaleType="fitCenter"
android:src="@drawable/abng_pl" />
<ImageView
android:id="@+id/pls_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:clickable="true"
android:onClick="tsdetail2"
android:scaleType="fitCenter"
android:src="@drawable/ag_supply_pl" />
<ImageView
android:id="@+id/pls_fill"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:src="@drawable/filler_image" />
</TableRow>
<TableRow android:layout_height="wrap_content" >
<ImageView
android:id="@+id/pls_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:clickable="true"
android:onClick="tsdetail2"
android:scaleType="fitCenter"
android:src="@drawable/beard_implement_pl" />
<ImageView
android:id="@+id/pls_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:clickable="true"
android:onClick="tsdetail2"
android:scaleType="fitCenter"
android:src="@drawable/j_r_tire_pl" />
</TableRow>