0

私のアクティビティの 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 のサイズが変更されるのはなぜですか。

どんな助けでも大歓迎です。

4

1 に答える 1