私のアクティビティの 1 つに、カスタム クラスを介して実行時に追加されるセルを含むテーブル レイアウトがあります。私のセルのレイアウトは次のとおりです。
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+cell/style_2"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="5dp" >
<View
android:id="@+cell/divider"
android:layout_width="fill_parent"
android:layout_height="2dp"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="#FF000000" />
<ImageView
android:id="@+cell/image"
android:layout_width="fill_parent"
android:layout_height="100dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@cell/divider"
android:layout_margin="5dp"
android:contentDescription="@string/row_thumbnail"
android:scaleType="fitCenter"/>
</RelativeLayout>
</TableRow>
これは、次のクラスによって拡張されます。
public Cell(Context context) {
super(context);
addView(((LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE))
.inflate(R.layout.gallery_row_1, null));
}
セルを膨らませると、ディスプレイとして使用する画像も設定します。問題は、画像ビューのサイズが本来のサイズにとどまらず、右端がどこにも見つからず、画像が表示されないことです(おそらくどこか右側にあるのでしょうか?)そして、私の問題がどこにあるのかわかりません。
c = new Cell(this);
c.getImageView().setImageBitmap(BitmapFactory.decodeStream(assetManager.open("categories" + File.separator + sec + File.separator + filename)));
page.addView(c);
getImageView
実際の ImageView 要素を返すセル内の関数です。
レイアウト パラメータが変更されたときに、適切なサイズになっていないだけで画像が表示されるため、画像が ImageView に配置されていることはわかっています。
目的の出力は、ビュー、上部の分割ビュー、および下部の ImageView である必要があります。これは、親を埋め、高さ 100 dp です。元のサイズに関係なく、画像は拡大縮小して内側に表示する必要があります。
また、イメージを ImageView に設定した行をコメント アウトすると、レイアウトの境界が正しくなり、Show Layout Bounds
有効にして表示されます。
私の全体的な質問は、画像を適用するときに ImageView のサイズが変更されるのはなぜですか。
どんな助けでも大歓迎です。