0

我正在尝试将图像视图动态添加到表中。为此,我使用以下代码:

public void showLetter(String aLetter){
    TableLayout letterTable = (TableLayout ) findViewById(R.id.letterArea);
    TableRow letterRow = (TableRow) letterTable.getChildAt(0);      
    ImageView newLetter = new ImageView(this);      
    int imageResource = getResources().getIdentifier("a", "drawable", getPackageName());
    newLetter.setBackgroundResource(imageResource);
    LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) new LinearLayout.LayoutParams(100, 50);
    newLetter.setLayoutParams(params);
    letterRow.addView(newLetter);
}

当我尝试运行此代码时,调用 showLetter 函数时未显示图像。当我不设置 newLetter 的布局参数时,此功能起作用并显示图像。有人知道为什么我不能在不消失的情况下设置此图像的布局参数吗?

这是包含应在其中添加图像的表的 xml 文件:

<TableLayout
    android:id="@+id/letterArea"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/submitWord"
    android:layout_marginLeft="@dimen/default_gap"
    android:layout_marginRight="@dimen/default_gap"
    android:layout_marginTop="@dimen/default_gap" >

    <TableRow app:layout_gravity="fill_horizontal" >

        <ImageView
            android:layout_width="@dimen/blocksize"
            android:layout_height="@dimen/blocksize"
            android:background="@drawable/scrabble_a" />

        <ImageView
            android:layout_width="@dimen/blocksize"
            android:layout_height="@dimen/blocksize"
            android:background="@drawable/scrabble_b" />

    </TableRow>
</TableLayout>
4

1 回答 1

1

删除(LinearLayout.LayoutParams)LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) new LinearLayout.LayoutParams(100, 50);检查...

编辑

好的,我在您的 cod 中看到的是您的 ImageView 的父级是 TableRow 而不是 LinearLayout

您可以检查一次

TableRow.LayoutParams params = new TableRow.LayoutParams(100, 50);

插入

LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) new LinearLayout.LayoutParams(100, 50);
于 2013-05-10T15:02:15.247 回答