0
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="100dp"
    android:src="@drawable/music" />

<ImageView
    android:id="@+id/imageView2"
    android:layout_width="wrap_content"
    android:layout_height="100dp"
    android:src="@drawable/music" />

<ImageView
    android:id="@+id/imageView3"
    android:layout_width="wrap_content"
    android:layout_height="100dp"
    android:src="@drawable/music" />

<ImageView
    android:id="@+id/imageView4"
    android:layout_width="wrap_content"
    android:layout_height="100dp"
    android:src="@drawable/music" />

</TableLayout>

这是原始的 XML,我只需要添加更多。我有一个很大的 imageView,因此需要将其缩小并复制 16 次到 4x4 网格中。我只能让它在一列中显示 4 张图片

4

2 回答 2

0

添加 4TableRow并将您ImageView的 ' 放入其中。

或者,您可以从代码创建此网格。像这样:

LinearLayout container = null;
LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1);
for (int i = 0; i < 16; ++i) {
    if (i % 4 == 0) {
        container = new LinearLayout(getActivity());
        container.setOrientation(LinearLayout.HORIZONTAL);
        mGrid.addView(container);
    }
    LinearLayout view = (LinearLayout) mLayoutInflater
        .inflate(R.layout.view_item, container, false);
        //populate the view in loop
        view.setLayoutParams(params);
        container.addView(view);
    }
于 2013-06-15T20:13:51.550 回答
0

我不明白大图的问题,但我会告诉你我的建议:

有多种可能的解决方案:

  1. 由于您有 16 个要创建的图像视图,您可以将GridViewBaseAdapter一起使用。如果在 xml 中看到它对您很重要,请使用isInEditMode作为 custo GridView,并将那里的适配器设置为带有假项目的适配器。您应该注意 gridView 上列/行大小的问题,尤其是在更改方向时。

  2. 另一种选择可能是 GridLayout

  3. 如果您坚持使用 TableLayout,您可以拥有 4 个 TableRow 实例,每个实例的权重为 1 。在它们中的每一个中,添加 4 个 imageView,每个的权重为 1。

于 2013-06-15T20:10:25.647 回答