2012-12-12 45 views
2

我想創建的是所有不同大小的圖像的滾動視圖,它們完美地融合在一起,沒有任何明顯的行或列。每張圖片代表一種食物,每種食物都有一定比例的來自所有其他用戶的選票。投票的百分比決定了圖片瀏覽的大小。哪裏有點棘手是我想讓所有這些不同大小的圖像視圖在圖像的混合網格圖中整齊地合在一起。爲了讓你看到我試圖創建的內容,想象一下類似於scollview中這個http://www.todomap.net/的東西。像俄羅斯方塊一樣適合在一起的混合大小圖像視圖的Android滾動視圖

我通常會發布迄今爲止嘗試使用的代碼,但是我的任何嘗試都沒有接近。我甚至想不到一組好的關鍵字來搜索類似的例子。

+1

也許直行到[畫布](http://developer.android.com/guide/topics/graphics/2d-graphics.html),或者只是使用的FrameLayout在滾動視圖,並與玩弄您的圖像的LayoutParams。 – dokkaebi

+0

正如@dokkaebi所建議的,如果您試圖自定義您的視圖,那麼A Canvas是您的最佳選擇。你可以自由地實現繪圖,但是你喜歡 –

+0

你也許可以通過編程的方式設置圖像視圖的大小,知道屏幕寬度。我的意思是,如果你想在第一行顯示3張照片。第一個有200票,第二個100和最後60.如果你在一個720像素寬的顯示器工作,你可以分配400像素到第一個,200到第二個和120到最後一個。看看Display.getWitdh()和LayoutParams來實現這一點。 –

回答

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);