2014-01-07 42 views
0

是ShapeRenderer类有能力做到这一点,我想为自定义对象(如带圆角的矩形)创建边界,然后填充它。之后,一些文本填充圆角框。圆角的文本框

shapeRenderer.begin(ShapeType.Filled); 
shapeRenderer.setColor(Color.RED); 
//shapeRenderer.line(...); 
shapeRenderer.curve(x1, y1, cx1, cy1, cx2, cy2, x2, y2, segments); 
shapeRenderer.line(...); 
shapeRenderer.curve(...); 
shapeRenderer.line(...); 
shapeRenderer.curve(...); 
shapeRenderer.line(...); 
shapeRenderer.curve(...); 
shapeRenderer.setColor(Color.BLACK); 
shapeRenderer.fill(); 
shapeRenderer.end(); 

任何建议在libgdx中做。

+0

为什么重新发明轮子:https://github.com/libgdx/libgdx/wiki/Scene2d.ui – Lestat

回答

1

正如Lestat所说,您可以使用Scene2d

无论您是否使用Scene2d,NinePatch都可能适用于绘制圆角矩形并可以很好地缩放(请检查this link)。

如果您想要设置图像/控件的颜色,可以使用NinePatch.setColor()

下面是关于颜色的两个示例场景:

  1. 你将永远有一个黑色笔触/轮廓,和任意填充。在这种情况下,使原始图像具有黑色笔画/轮廓和白色内部。当使用NinePatch.setColor()对图像进行“着色”时,笔划/轮廓将不受影响并保持黑色,而内部(填充)将与提供给所提到的方法的颜色相同。

  2. 你有任意填充和任意笔画。在这种情况下,你需要2个独立的原始图像。首先将包含“填充”,并且将是完全白色的。第二个将包含白色的'中风',并且在内部是透明的。绘画的时候,你会先画出它的色调,然后用它的色彩来描边,这就是全部。

如果由于某种原因,你需要不同的角落曲线半径,你可能会需要单独的图像(或图像对)对每个半径,以获得最好的结果。

+0

Thanx ..我会试试看。 – arv

+0

如何创建这个http://www.things4myhome.com/assets/images/goodwin/whiteboards/speech-bubble-whiteboard.jpg – arv

+0

@arv你需要在阴影下还是仅仅需要那个形状而没有大纲? – mrzli