XML コード:
<GridLayout
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/step"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/menu" >
</GridLayout>
上記のコードは、作成中のボタンの簡単なレイアウトを可能にするグリッドを作成します。
Java コード:
GridLayout grid = (GridLayout)findViewById(R.id.grid);
grid.setColumnCount(10);
grid.setRowCount(10);
cells = new Button[100];
for (int i = 0; i < 100; i++) {
cells[i] = new Button(this);
if (gen.nextInt(3) % radiofill == 0) //[0,3)
cells[i].setBackgroundColor(Color.WHITE);
else
cells[i].setBackgroundColor(Color.BLACK);
cells[i].setClickable(true);
cells[i].setOnClickListener(new OnClickListener() {
public void onClick(View v) {
v.setBackgroundColor(Color.BLACK);
}
});
grid.addView(cells[i]);
}
このコードでは、100 個のボタンが作成され、最終的に XML で作成された GridLayout に追加される配列に追加されます。
すべてのボタンは意図したとおりに作成、配置、機能しているように見えますが、ボタンが大きすぎて電話の画面に収まりません。ボタンが過不足なく GridLayout を完全に埋めるようにするにはどうすればよいですか? この例では 100 個のボタンが作成されますが、プログラムは複数の種類の完全平方数 (4、9、16、25、36、49) を作成できるように設計されているため、GridLayout は柔軟である必要があります。