圆角文本框

时间:2014-01-07 06:06:26

标签: textbox libgdx

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中进行。

1 个答案:

答案 0 :(得分:1)

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

无论您是否使用Scene2d,如果您想要绘制一个可以很好地缩放的圆角矩形,可以使用NinePatch(检查this link)。

如果您希望能够设置图像/控件的颜色,可以使用NinePatch.setColor()

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

  1. 您将始终拥有黑色笔触/轮廓和任意填充。在这种情况下,使原始图像具有黑色笔划/轮廓和白色内部。当您使用NinePatch.setColor()'图像'时,笔划/轮廓将不受影响并保持黑色,而内部(填充)将与提供给上述方法的颜色相同。

    < / LI>
  2. 您有任意填充和任意笔划。在这种情况下,您需要2个单独的原始图像。第一个将包含'填充'并且将完全是白色。第二个将包含白色的“笔画”并且内部是透明的。在绘制时,您将首先使用其色调绘制填充,然后使用其色调绘制笔划,这就是全部。

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