2013-08-21 18 views
5

Libgdx'te bir UI penceresi oluşturmak istiyorum; burada üst kısım (başlığı içeren ve pencereyi sürüklemenizi sağlayan parça) pencerenin geri kalanından farklı bir arka plan rengine sahiptir. Sadece tüm pencere için arka plan rengini ayarlayabilirim, sadece bu üst kısım için değiştirmek mümkün mü? Bugüne kadarScene2d.ui penceresinin en üst rengi?

Kodu: libgdx UI Windows için

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

Pencere, tek bir dokuz düğme olarak kabul edilir. Dokuyu doğrudan değiştirebilirsiniz, ancak çalışma zamanında iki farklı renge sahip olmak kendi Pencere widget'ınızı gerektirecektir. – Jyro117

+0

@ Jyro117 Bilgi için teşekkürler. Ben çok tanıdık dokuzpatch değilim. Dokuları doğrudan değiştirdiğinizde, temel aldığı görüntü dosyasına en üst rengi dahil edeceğimi mi kastediyorsunuz? – mattboy

+1

Bu doğru, sadece görüntü dosyasını değiştiriyor olmalısınız. Ninepatch, 9 alt bölüme ayırdığınız ve istediğiniz şekle uyacak şekilde genişletebileceğiniz bir doku için sadece bir isimdir. – Jyro117

cevap

6

üst çubuk bütün pencere olarak aynı doku kullanır. Üst çubuğun rengini değiştirmek için alttaki doku dosyasının değiştirilmesi gerekecektir. libgdx bir bütün olarak davranır ve bir pencerenin her bileşeni için ayrı renkler belirtmek için yerleşik bir yol yoktur.

Başka yollar da vardır, ancak bunlar önemsizdir ve yerleşik Pencere sınıfının davranışlarının çoğunu çoğaltmak için kendi pencere öğesi sınıfınızı yazmayı gerektirir.

İlgili konular