イメージビューをテーブルに動的に追加しようとしています。これを行うには、次のコードを使用します。
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>