如何使用两列滚动视图



我想要一个 2 列ScrollView .在每一列中,应该有一个ImageButton

<?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等。所以 5 行 10 ImageButtons.

我该怎么做?

使用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); 
}

最新更新