0

2列が欲しいですScrollViewImageButton各列には、 :が必要です。

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView1"
android:layout_height="800dp"
android:background="#FFF"
android:layout_width="600dp" >

<LinearLayout
    android:id="@+id/categoryLinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</LinearLayout>

</ScrollView>

そしてコード:

        LinearLayout sv = (LinearLayout) findViewById(R.id.categoryLinearLayout1);

    for (int i = 0; i < 10; i++) {
        ImageButton ib = new ImageButton(this);
        // ib.setImageDrawable(getResources().getDrawable(R.drawable.cat1));

        Bitmap bmp = BitmapFactory.decodeResource(getResources(),
                R.drawable.cat1);
        int width = 300;
        int height = 300;
        Bitmap resizedbitmap = Bitmap.createScaledBitmap(bmp, width,
                height, true);
        ib.setImageBitmap(resizedbitmap);
        sv.addView(ib);
    }

しかし、このように、10個すべてがImageButtons水平になります。私が必要としているのは、2つImageButtonを並べて(600pxになります)、下に移動して、さらに2つ入れるImageButtonsなどです。したがって、10に対して5行になりますImageButtons

どうやってやるの?

4

1 に答える 1

1

を使用しTableLayoutます:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView1"
android:layout_height="800dp"
android:background="#FFF"
android:layout_width="600dp" >

<TableLayout
    android:id="@+id/categoryLinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</TableLayout>

</ScrollView>

次に、コードで:

TableLayout sv = (TableLayout) findViewById(R.id.categoryLinearLayout1);

for (int i = 0; i < 5; i++) {
    TableRow tr = new TableRow(this);
    tr.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.FILL_PARENT, TableLayout.LayoutParams.WRAP_CONTENT));
    for (int j = 0; j < 2; j++) {
         ImageButton ib = new ImageButton(this);
         // ib.setImageDrawable(getResources().getDrawable(R.drawable.cat1));
         Bitmap bmp = BitmapFactory.decodeResource(getResources(),
              R.drawable.cat1);
         int width = 300;
         int height = 300;
         Bitmap resizedbitmap = Bitmap.createScaledBitmap(bmp, width,
            height, true);
         ib.setImageBitmap(resizedbitmap);
         ib.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
         tr.addView(ib);
     }
     sv.add(tr); 
}
于 2012-06-16T13:39:06.000 に答える