2014-06-16 5 views
4

나는 scene2d.ui Table을 만들었으며 각 행의 배경색을 번갈아 가며 사용하고 싶습니다.대체 행 색상으로 scene2d.ui 테이블을 만드시겠습니까?

다양한 테이블과 셀 방법을 살펴 봤지만 분명히 할 수있는 방법이없는 것 같습니다.

심지어 가능합니까? 그렇다면 가장 쉬운 방법은 무엇일까요?

답변

9

나는 drawable 배경을 하나의 컬러 픽셀과 함께 사용했습니다. 나는 그것이 우아한 것이 아니지만 더 쉬운 길을 찾지 못했습니다.

//Pixmap with one pixel 
Pixmap pm1 = new Pixmap(1, 1, Format.RGB565); 
pm1.setColor(Color.GREEN); 
pm1.fill(); 

Pixmap pm2 = new Pixmap(1, 1, Format.RGB565); 
pm2.setColor(Color.RED); 
pm2.fill(); 

dialogueWindow = getWindow(); 

dialogueWindow.setTitle("New Game"); 
// The table that will have the green color 
Table row1 = new Table(mySkin); 
row1.add(nameStation); 
row1.add(nameStationField); 
row1.setBackground(new TextureRegionDrawable(new TextureRegion(new Texture(pm1)))); 
dialogueWindow.add(row1); 
dialogueWindow.row(); 

// The table that will have the green color 
Table row2 = new Table(mySkin); 
row2.setBackground(new TextureRegionDrawable(new TextureRegion(new Texture(pm2)))); 
row2.add(cancel).size(120, 60); 
row2.add(ok).size(100, 60); 

dialogueWindow.add(row2).fillX(); 
dialogueWindow.row(); 
+0

감사합니다. 나는 그것에 대해 생각해 봤지만 그것을하는 것이 가장 좋은 방법이라고 믿기가 어려웠습니다. 단순히 행 객체에 setBackgroundColor 메서드를 추가하면 더 직관적 일 것입니다. – eby

+0

@eby 나는 동의한다, 이것은 2 개의 분리 된 테이블을 만들고, 따라서 열을 적절하게 정렬하지 못한다. 동적으로 생성하는 메서드에 테이블을 전달하여 행을 추가하고 열 너비를 수정하지 않으므로 열을 배경으로 추가하고 싶습니다. 현재 제가 생각할 수있는 유일한 방법은 각 셀에 대한 스택을 만들고 뒤쪽에 드로어 블을 추가하는 것입니다. 그러나 당신이 국경의 somekind 같이 원하는 경우에 당신은 3 개의 다른 심상 (좌, 중앙 및 오른쪽)을 필요로한다. – Madmenyo

+0

은 'Format.RGB565' 대신'Format.RGBA8888'을 사용하여 투명도를 관리 할 수 ​​있습니다. –