2

我要创建的是所有不同大小的图像的滚动视图,它们完美地组合在一起,没有任何明显的行或列。每个图像代表一种食物,每种食物都有一定比例的所有其他用户的投票。投票的百分比决定了 imageviews 的大小。有点棘手的地方是我想让所有这些不同大小的图像视图在图像的混合网格图中整齐地组合在一起。为了让您直观地了解我试图创建的内容,请在 scollview 中 想象类似于此http://www.todomap.net/的内容。

我通常会发布到目前为止我尝试过的代码,但我的尝试都没有接近。我什至想不出一组好的关键字来搜索类似的例子。

4

1 回答 1

0

只需使用网格布局。您可以根据需要添加具有行跨度和列跨度的视图。你会得到你所指的网站图像的精确复制品。

只需扩展gridLayout。使用以下功能

private Spec getSpan(int span) {
    return spec(UNDEFINED, span, FILL);
}

public void addView(View view, int row_span, int column_span) {
    LayoutParams params = new LayoutParams(getSpan(row_span), getSpan(column_span));
    params.height = square_height*row_span;
    params.width = square_width*column_span;
    addView(view, params);
}

然后您可以将视图添加到网格布局,它会为它们找到最佳位置。请记住定义行、列、square_width 和 square_height

setRowCount(rows);
setColumnCount(columns);
于 2013-07-10T23:05:44.320 回答