我试图创建的是所有不同大小的图像的滚动视图,这些图像完美地组合在一起,没有任何明显的行或列。 每个图像代表一种食物,每种食物都有一定比例的投票来自所有其他用户。 投票的百分比决定了图像视图的大小。 有点棘手的是,我想让所有这些不同大小的图像视图整齐地放在图像的混合网格图中。为了给你一个可视化的我试图创建的东西,想象一个类似于这个 http://www.todomap.net/的东西在一个scollview中。
我通常会发布到目前为止我尝试过的代码,但我的尝试都没有接近。我什至想不出一组好的关键字来搜索类似内容的示例。
只需使用网格布局。您可以根据需要添加具有行跨度和列跨度的视图。你会得到你所指的网站图像的精确复制品。
只需扩展网格布局。使用以下函数
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);