2013-08-21 71 views
5

我想在libgdx中創建一個UI窗口,其中頂部(包含標題的部分以及允許您拖動窗口的部分)與窗口的其餘部分具有不同的背景顏色。我只能設置整個窗口的背景顏色,是否可以改變它只是爲了這個頂部?Scene2d.ui窗口的頂部顏色?

到目前爲止的代碼:

WindowStyle windowStyle = new WindowStyle(new BitmapFont(), Color.WHITE, skin.newDrawable("white", Color.BLACK)); 

    Window window = new Window("test", windowStyle); 
    window.setMovable(true); 
    window.padTop(20); 

    stage.addActor(window); 
    window.setPosition(100, 100); 
    window.setSize(500, 300); 
+1

該窗口被視爲單個ninepatch。你可以直接改變紋理,但是在運行時需要兩個不同的顏色需要你自己的窗口部件。 – Jyro117

+0

@ Jyro117感謝您的信息。我不是很熟悉ninepatch。直接改變紋理意味着我會在它所基於的圖像文件中包含頂部顏色? – mattboy

+1

這是正確的,你只會改變圖像文件。 Ninepatch只是一個紋理的名稱,您可以將它分爲9個子部分,並將它們拉伸以適應所需的任何形狀。 – Jyro117

回答

6

頂部libgdx對UI的Windows酒吧使用紋理整個窗口相同。爲了改變頂欄的顏色,需要修改底層紋理文件。 libgdx將它視爲一個整體,並且沒有內置的方式爲窗口的每個組件指定不同的顏色。

還有其他的方法,但它們不是微不足道的,需要編寫自己的窗口小部件類來複制內置Window類的大多數行爲。