我发现在每晚构建中LibGDX中有一个新组件 - TextArea这是该scene2d.ui软件包的一部分.拥有这样的组件很好,非常容易使用,但我缺少的是对多色文本的一些支持.
我想在一个不同颜色的文本中突出显示一些关键字,但我不知道如何使用当前的api.BitmapFontCache类中有一个方法:
public void setColors (Color tint, int start, int end)
Run Code Online (Sandbox Code Playgroud)
这种方法的Javadoc说如下:
设置指定字符的颜色.这可能只在setText(CharSequence,float,float)之后调用,并且每次调用setText时都会重置.
但我不知道如何通过TextArea对象使用它,或者甚至可以这样做.有人试图搞清楚吗?每个提示都将受到赞赏.
Libgdx 提供颜色标记,必须首先在 BitmapFont 上启用
font.getData().markupEnabled = true;
Run Code Online (Sandbox Code Playgroud)
使用该字体呈现的文本将查找颜色标记,其中颜色用括号括起来。每种使用的颜色都被推入堆栈。
[RED]red [ORANGE]orange[#FF0000]red [#FF000033]transparent[BLUE]Blue text[RED]Red text[]Blue text[[表示转义的括号字符,但是当后跟右括号时它不会按预期工作。命名颜色在com.badlogic.gdx.graphics.Colors类中定义,并且可以添加Colors.put("NAME", color);.
小智 1
希望这还不算太晚。
我还没有尝试过你的方法,但我敢打赌你必须覆盖 setText 方法,然后为你想要的特定点设置颜色。start 和 end 是您想要使用该特定颜色的文本片段的索引。
我在这里实现了 MulticolorTextArea:https ://github.com/AnEmortalKid/MulticolorTextArea/tree/mta-release
希望这会有所帮助。
| 归档时间: |
|
| 查看次数: |
1581 次 |
| 最近记录: |