2014-04-01 68 views
2

我想要一個圖像按鈕列表顯示在我的libGDX應用程序。 這個想法是,圖像的大小可以說是400x100像素。 我需要列表才能顯示拉伸到屏幕寬度的圖像 - 圖像的高度應調整大小以保持寬高比。libGDX autoresizing圖像按鈕

但是,每次我嘗試這樣做,圖像不會正確調整大小。 當尺寸小於屏幕寬度或填充不好或縱橫比錯誤時,圖像不會拉伸。

你可以建議的方式來做到這一點,我掙扎找到任何解決方案.. 演員必須是按鈕一個按鈕。(需要「選中」 /選擇功能)

我試着做是這樣的:

Table table = new Table(); 
table.setFillParent(true); 

Texture t1 = ... snip ... 
Texture t2 = ... snip ... 
ImageButton i1 = new ImageButton(new TextureRegionDrawable(new TextureRegion(t1)); 
ImageButton i2 = new ImageButton(new TextureRegionDrawable(new TextureRegion(t2)); 

i1.getImageCell().expandX().fillX(); 
i2.getImageCell().expandX().fillX(); 

table.add(i1).expandX().fillX(); 
table.row(); 
table.add(i2).expandX().fillX(); 

getStage().add(table);  
+0

您是否使用了'camera',或者如果您使用的是最新的Nightlies版使用'Viewport'?我認爲你正在尋找的東西 – Springrbua

回答

0
float screenWidth = this.stage.getWidth(); 
i2.setWidth(screenWidth); 

如果我理解正確的,這應該做你想做的。

+0

你好,thanx for answer。但是代碼完全忽略了setWidth。當width小於屏幕寬度時,expandX()和fillX()與table.setFillParent()一起執行作業。問題是讓圖像縮放並填充它們各自單元格的高度。有時候圖像會水平重疊,有時候它們之間會有30pix填充,當我做Table.drawdebug(stage); ......細胞之間沒有填充物,但是在圖像之下存在空的空間。 DUNO爲什麼.. :( –

4

這爲我工作:

imageButton.setBounds(x, y, 128, 128); 
imageButton.getImageCell().expand().fill(); 
+0

實際上它是由Libgdx官方指南建議不要設置窗口小部件的邊界,而是使用將包含窗口小部件的單元格的.width()和.height()方法。 –