目前,还没有一种方法可以呈现从右到左的文本,正如this中所示。因此,唯一的方法是使用StringBuilder
反转文本,然后显示它。更有效的呈现反转文本的方法是创建一个方法,根据需要显示文本,这样每次尝试写从右到左的文本时就不必反转它了。如果您创建了一个方法,就可以将RTL文本实现到聊天、名称或其他需要RTL字体的图形中。
我还建议将位图转换为.ttf文件,以便在保持良好质量的同时轻松使用自定义字体。然后,您可以使用FreeTypeFontGenerator
来很好地呈现您的字体。如果无法将Bitmap
转换为字体,则可以使用下面的方法显示文本。一个非常好的替代方案是Hiero库。您可以选择RTL文本复选框。
这里是一个你可以创建的方法示例,用于渲染文本(使用FreeTypeFontGenerator
):
FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("fontFile.ttf"));
public void renderRTL(float x, float y, int fontSize, String text) {
batch.begin();
StringBuilder builder = new StringBuilder();
builder.append(text);
builder.reverse();
String outputText = builder.toString();
FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
parameter.size = fontSize;
parameter.characters = "ALL HEBREW CHARACTERS";
scoreFont = generator.generateFont(parameter);
scoreFont.setColor(Color.BLACK);
scoreFont.draw(batch, outputText, x, y);
generator.dispose();
batch.end();
}
请确保将所有这些依赖项添加到您的
build.gradle
文件中(在依赖项部分)。
compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86"
你可以选择在你的方法中添加一个颜色参数(以RGBA格式),以获得更多的功能。希望能帮到你!
Bitmap
作为字体显示的?或者你已经有了一个 .ttf 或 .otf 字体文件吗? - AkashBhave